假設標籤是表格單元格內容視圖的直接子視圖,那麼我的問題是您可以訪問表格單元格內容視圖的layoutSubviews
方法中標籤界限的最終屏幕值(而不是表格單元本身的layoutSubviews
方法)。
但是,如果你的標籤是不是多行,然後簡單地從它的attributedText
財產隨時抓住標籤的高度如下:
NSAttributedString *attrString = label.attributedText;
CGFloat labelHeight = ceilf(attrString.size.height);
或者,您可以使用標籤的font
屬性來確定標籤的高度(同樣,只有當標籤是不是多行):
UIFont *font = label.font;
CGFloat labelHeight = ceilf(font.lineHeight);
如果您的標籤是多行,則計算行高度最好的選擇如下:
// but you have to know the label's width
CGFloat labelWidth = …
NSAttributedString *attrString = label.attributedText;
CGRect rect = [attrString boundingRectWithSize:CGSizeMake(labelWidth, FLT_MAX) options:NSStringDrawingUsesLineFragmentOrigin context:nil];
CGFloat labelHeight = ceilf(rect.size.height);
您將手動計算標籤的寬度。通常它是主視圖的邊界寬度減去水平間距邊界的一些固定量。
「試過layoutSubviews」引用表格單元格的layoutSubviews方法嗎? – bilobatum
這是正確的! –