Используйте этот
UILabel *label = [[UILabel alloc] init];
label.text = @"myStringsdsdvsvdsdvsdvsdndbndbnbdnbdnbdnpopopoploplklioolnhbfghrmyString";
label.numberOfLines = 0;
label.frame = CGRectMake(0, 50, 320, 568);
[self.view addSubview:label];
label.frame = CGRectMake(0, 42, [self widthForLabel:label withText:label.text], [self height:label withText:label.text]);
label.backgroundColor = [UIColor redColor];
для динамического ширина
-(CGFloat)widthForLabel:(UILabel *)label withText:(NSString *)text
{
if (text.length > 0)
{
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:label.font}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){label.frame.size.width, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
return ceil(rect.size.width);
}
return 0;
}
для динамической высоты
-(CGFloat)height:(UILabel *)label withText:(NSString *)text
{
if (text.length > 0)
{
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:label.font}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){label.frame.size.width, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
return ceil(rect.size.height);
}
return 0;
}
здесь проблема в том, что вам нужно, чтобы инициализировать метку с некоторой рамкой, как этот
label.frame = CGRectMake(0, 50, 320, 568);
теперь, когда вы добавили ярлык на ваш взгляд, то вычислить динамическую высоту и ширину этикетки и снова установить рамку.
Надеюсь, что это сработает.
Я изменил, но он все еще не работает. – bubibu
найти ответ на http://stackoverflow.com/questions/990221/multiple-lines-of-text-in-uilabel ... –
Что вы имеете в виду, если не работаете? _This свойство управляет максимальным количеством строк для использования, чтобы поместить текст метки в его ограничивающий прямоугольник ._ –