UILabel上的奇怪行为有时无法适应它的内容

时间:2015-06-12 12:50:27

标签: objective-c

我解析了一些json数据,我填充了一些以编程方式创建的UILabel,这是代码:

    pTitle = [[UILabel alloc] initWithFrame:CGRectMake(detailsView.frame.origin.x -10, pImage.frame.origin.y + pImage.frame.size.height + 15, detailsView.frame.size.width - 25, 30)];
    pTitle.textColor = [UIColor lowBlack];
    [pTitle setFont:[UIFont fontWithName:@"Arial" size:14.0]];
    pTitle.lineBreakMode = NSLineBreakByWordWrapping;
    pTitle.numberOfLines = 0;
    [detailsView addSubview:pTitle];

框架很好,但在我获得callBack并将下载的数据设置为UIlabel后,有时它会调整大小,但有时每个单词都会创建一个新行,因为它似乎会更改框架。

下载json数据后我唯一要做的就是将内容设置为UILabel,然后调用:

[pTitle sizeToFit];

如何解决此问题?

编辑:

我找到了如何重新创建问题,基本上如果我下载一个像“Test”这样的小名称的产品,UILabel的框架会变得与单词一样大,所以下一个下载的名称将不会显示大于单词“测试”。它是由sizeToFit方法引起的吗?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题:

对我有用的解决方案是重新声明帧然后再次调用-sizeToFit,如下所示:

pTitle.frame = CGRectMake(detailsView.frame.origin.x -10, pImage.frame.origin.y + pImage.frame.size.height + 15, detailsView.frame.size.width - 25, 30);
[pTitle sizeToFit];