我解析了一些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
方法引起的吗?
答案 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];