【问题标题】:How to change UILabel size as per text with limited width如何根据宽度有限的文本更改 UILabel 大小
【发布时间】:2013-11-11 12:29:05
【问题描述】:

目前我的标签默认宽度为 100 像素。

标签上的文字动态变化

我的要求是

标签大小应根据文本变化,其宽度应限制为 300 像素。

300 像素后,文本进入下一行,标签的高度必须增加。

如何实现这个场景..

self.messageLabel = [[UILabel alloc] init];

self.messageLabel.frame = CGRectMake(0, 0, 100, 20);

self.messageLabel.textAlignment = NSTextAlignmentCenter;
self.messageLabel.font = [UIFont boldSystemFontOfSize:16];

messageLabel.numberOfLines = 0;
messageLabel.lineBreakMode = NSLineBreakByWordWrapping;

[self.view addSubview:messageLabel];

获取文字大小:

CGSize labelSize = [self.messageLabel.text sizeWithFont:self.messageLabel.font];

我可以根据文本更改标签的宽度

self.messageLabel.frame = CGRectMake(0, 0, self.frame.size.width-10, 20);

但是如何在每 300 像素后将文本移动到下一行

标签尺寸也会随着高度的增加而增加。

【问题讨论】:

    标签: iphone objective-c uilabel uitextview


    【解决方案1】:
    -(CGSize)getLabelSize:(NSString *)text
    {
    
       UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
        CGSize constraintSize = CGSizeMake(300.0f, MAXFLOAT);
        CGSize labelSize = [text sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
    return labelSize;
    
    
    
    }
    

    使用此方法。 希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多