在我的iPad应用程序中,我显示滚动UILabel
,其中包含将从Web服务获取的文本,并且需要将文本大小设置为动态。我的问题是我必须根据要从Web服务获取的文本的长度来设置UILabel
的宽度。
I have tried all或most the解决方案可能但是徒劳无功。
假设我存储从服务器获取的字符串的NSString
是否包含300个字符,使用以下代码显示2270为宽度。
CGFloat width = [ScrollingLabel.text sizeWithFont:ScrollingLabel.font].width;
ScrollingLabel.frame = CGRectMake(1024,720,width,45);
但是我也没有在应用程序中获得一半的字符串。
答案 0 :(得分:2)
我可以通过将宽度乘以代码产生的2来得到问题的解决方案:
CGFloat width = [ScrollingLabel.text sizeWithFont:ScrollingLabel.font].width;
ScrollingLabel.frame = CGRectMake(1024,720,width,45);
答案 1 :(得分:1)
实际上,实现此目的的最佳方法是编写一个UILabel类别并添加方法:
- (CGFloat)expectedWidth
{
CGSize size = [self.text sizeWithFont:self.font
constrainedToSize:CGSizeMake(FLT_MAX,self.bounds.size.height)
lineBreakMode:self.lineBreakMode];
return size.width;
}