我在Xcode 4.5,在模拟器上运行专为iOS6的为什么在Interface Builder中更改字体大小会阻止UILabel调整大小以适应内容?
一个简单的测试应用程序这只是一个单一的UIViewController有一个UIScrollView,并在UIScrollView的一个单一的UILabel。
我在界面生成器中将UILabel中的NumberOfLines设置为0,并将其设置为ScrollView中的全宽 - 但只有约30个高度。我还将UIScrollView设置为垂直滚动。我为两个UI组件设置了两个IBOutlets,并将该文件的所有者设置为UIScrollView的代理(并放在UIViewController头部)。
在viewDidLoad中,我只是将标签的文本设置为一个很长的串。
- (void)viewDidLoad
{
[super viewDidLoad];
self.txtLabel2.text = @"`Twas brillig, and the slithy toves - Did gyre and gimble in the wabe: - All mimsy were the borogoves, - And the mome raths outgrabe. ";
}
,然后在ViewDidAppear我设置滚动视图的内容大小到的UILabel的大小:
-(void)viewDidAppear:(BOOL)animated
{
self.scrollView.contentSize = self.txtLabel2.bounds.size;
}
这似乎很好地工作 - 在的UILabel自动的和滚动调整其高度视图设置为正确的高度,并在文本中很好地滚动。大。
但是,我显然在这里做了一些严重的错误 - 因为如果我进入界面生成器并将UILabel的字体大小从默认值(17.0)更改为任何其他值 - 它将停止工作。标签不再调整大小,并在第一行被截断。
我已经手动试图调整大小的UILabel - 使用该解决方案建议在这里例如:
,并使用扩展名,当我设置的内容:
self.txtLabel2.text = @"`Twas brillig, and the slithy toves - Did gyre and gimble in the wabe: - All mimsy were the borogoves, - And the mome raths outgrabe. ";
//use the current width - resize the height
[self.txtLabel2 sizeToFitFixedWidth:self.txtLabel2.bounds.size.width];
,但是这并未”似乎没有任何作用。
我不明白为什么改变字体大小应该改变UILabel的行为自动调整大小,我不知道为什么手动设置UILabel的大小没有效果。这里发生了什么? (还有 - 我该做什么不同,以便我不会陷入这个混乱局面!)
这是一个非常简单的小应用程序 - 我可以从头开始,并获得相同的结果。有人能够重现这种效果吗? –