嚴格根據文字和字型獲取 UILabels 大小
NSString
提供方法 boundingRectWithSize
,可用於根據文字和字型預測 UILabel
的結果 CGSize,而無需建立 UILabel
Objective-C
[[text boundingRectWithSize:maxSize options:(NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName: fontName} context:nil] size];
迅速
let nsText = text as NSString?
nsText?.boundingRectWithSize(maxSize, options: [.TruncatesLastVisibleLine, .UsesLineFragmentOrigin], attributes: [NSFontAttributeName: fontName], context: nil).size
迅速
建立標籤和標籤高度約束出口。新增以下程式碼,將文字標記為標籤。
@IBOutlet var lblDescriptionHeightConstration: NSLayoutConstraint!
@IBOutlet weak var lblDescription: UILabel!
let maxWidth = UIScreen.mainScreen().bounds.size.width - 40
let sizeOfLabel = self.lblDesc.sizeThatFits(CGSize(width: maxWidth, height: CGFloat.max))
self.lblDescriptionHeightConstration.constant = sizeOfLabel.height
注意:40
是螢幕左右兩側的空間。