我在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的大小沒有效果。這裏發生了什麼? (還有 - 我該做什麼不同,以便我不會陷入這個混亂局面!)
這是一個非常簡單的小應用程序 - 我可以從頭開始,並獲得相同的結果。有人能夠重現這種效果嗎? –