1

在我的 iPad 应用程序中,我展示UILabel了将从 Web 服务获取的文本滚动,并且需要将相同的文本大小设置为动态。我的问题是我必须UILabel根据要从 Web 服务获取的文本的长度来设置宽度。

已经 尝试 了所有大部分可能的解决方案但徒劳无功。

假设NSString我存储从服务器获取的字符串的位置是 300 个字符,它使用以下代码将 2270 显示为宽度。

CGFloat width =  [ScrollingLabel.text sizeWithFont:ScrollingLabel.font].width;

ScrollingLabel.frame = CGRectMake(1024,720,width,45);

但是我也没有在应用程序中获得一半的字符串。

4

2 回答 2

2

我可以通过将宽度乘以代码得到的 2 来解决我的问题:

CGFloat width =  [ScrollingLabel.text sizeWithFont:ScrollingLabel.font].width;

ScrollingLabel.frame = CGRectMake(1024,720,width,45);
于 2012-05-22T04:47:06.963 回答
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;
}
于 2012-05-18T09:43:12.057 回答