2016-07-30 3 views
0

Привет я reacreating в TEXTSIZE с этим кодомIOS создать TEXTSIZE с CGSize амортизируется метод

CGSize textSize = [self.text sizeWithFont:self.font 
         constrainedToSize:self.frame.size 
          lineBreakMode:self.lineBreakMode]; 

выше является обесцениваются. как мы можем изменить его, чтобы сохранить цель?

Любая помощь очень ценится. Благодаря!

Моя вся функция цель состоит в том, чтобы выровнять верхнюю UIlable (по вертикали)

- (void)alignTop 
{ 
    CGSize textSize = [self.text sizeWithFont:self.font 
          constrainedToSize:self.frame.size 
           lineBreakMode:self.lineBreakMode]; 

    CGRect textRect = CGRectMake(self.frame.origin.x, 
           self.frame.origin.y, 
           self.frame.size.width, 
           textSize.height); 
    [self setFrame:textRect]; 
    [self setNeedsDisplay]; 
} 
+0

"устарел"? Это будет зависеть от того, какую версию iOS вы предназначаете, и вы не говорите нам, так кто знает? – Droppy

+0

К сожалению, код старого проекта ios 6. теперь нужно обновить для 7+! –

ответ

2

Используйте этот

- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context 

или использовать этот

- (CGSize)sizeWithAttributes:(nullable NSDictionary<NSString *, id> *)attrs 

это пример

+ (CGSize)neededSizeForText:(NSString*)text withFont:(UIFont*)font andMaxWidth:(float)maxWidth 
{ 
    NSStringDrawingOptions options = (NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin); 

    NSMutableParagraphStyle * style = [[NSMutableParagraphStyle alloc] init]; 
    [style setLineBreakMode:NSLineBreakByWordWrapping]; 
    [style setAlignment:NSTextAlignmentRight]; 

    NSDictionary *textAttibutes = @{NSFontAttributeName : font, 
            NSParagraphStyleAttributeName : style}; 

    CGSize neededTextSize = [text boundingRectWithSize:CGSizeMake(maxWidth, 500) options:options attributes:textAttibutes context:nil].size; 

    return neededTextSize; 
} 

Надеюсь, это поможет

+0

спасибо, я просто отредактировал вопрос. Цель состоит в том, чтобы выровнять UIlable (вертикальный) верх. Является ли maxWidth frame.size.width? –

+0

maxWidth - пример ширины вашего контейнера вида для вашего ярлыка - ваши поля, в вашем случае - ваш frame.size.width –

Смежные вопросы