2

目前,我的标签默认宽度为 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 像素后将文本移动到下一行

标签尺寸也会增加高度。

4

1 回答 1

5
-(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;



}

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

于 2013-11-11T12:41:41.487 回答