我一直在iOS 5/6應用程序中使用此代碼很長一段時間。這是在viewWillAppear:
和操縱一個UILabel
高度,它可以根據需要適應更多的文本(並推動其下的其他標籤)。問題是,在iOS 7中,它似乎不再起作用。文本根本不包裝到第二行。這裏是代碼:爲什麼我的UILabel框架代碼在iOS 6中工作,但不在iOS 7中工作?
self.titleLabel.text = titleString;
self.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
self.titleLabel.numberOfLines = 0;
// Determine what the size of the title label should be
CGSize maximumLabelSize = CGSizeMake(163,66);
CGSize expectedLabelSize = [titleString sizeWithFont:self.titleLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:self.titleLabel.lineBreakMode];
// Adjust the the new height of the title label.
CGRect newFrame = self.titleLabel.frame;
newFrame.size.height = expectedLabelSize.height;
self.titleLabel.frame = newFrame;
NSLog(@"Title Height: %f", self.titleLabel.frame.size.height);
這裏有一些信息。此UILabel
位於UITableView
的標題視圖中。它的設計與Interface Builder和IBOutlet
標籤。在iOS 6和iOS 7項目中,UILabel
的屬性都是相同的。
這裏是什麼樣子在Xcode 4對運行iOS 6的:
這裏是Xcode的5與iOS 7(因爲你可以看到,該文本不換下來):
人有什麼想法?
你有沒有對的UILabel行數設置爲一個足夠高的價值嗎? – Linuxios
iOS 7中的文本渲染有一些怪癖,人們已經注意到,嘗試給標籤多一些像素高度(也許是+5),並查看它是否正確包裝 – Jack
即使將高度增加了+10,仍然沒有任何結果。這就像標籤變得更大,但文字不包裹或出現在該區域。 –