use*_*294 2 iphone objective-c uitextview uilabel
目前我的标签默认宽度为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];
Run Code Online (Sandbox Code Playgroud)
获取文字大小:
CGSize labelSize = [self.messageLabel.text sizeWithFont:self.messageLabel.font];
我可以根据文字更改标签的宽度
self.messageLabel.frame = CGRectMake(0, 0, self.frame.size.width-10, 20);
但是如何在每300个像素之后将文本移动到下一行
标签尺寸也增加了.
-(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;
}
Run Code Online (Sandbox Code Playgroud)
使用此方法.我希望它对你有所帮助.