2016-11-03 65 views
4

我正在使用UITableViewAutomaticDimension獲取UITableview的單元格的動態高度。當我在UITableviewCell中的標籤中設置純文本時,一切正常。UITableViewAutomaticDimension在UITableviewCell的UILabel中沒有設置正確的高度和表情符號

當我在標籤中設置純文本和表情符號字符時,單元格高度發生問題。單元格高度確實會動態增加,但由於表情符號字符的高度不正確。我認爲UITableview可能會將unicode視爲文本而不是表情符號圖標,因此它只返回純文本高度。

在我的情況下,標籤的x原點也是動態的。

請看下面的屏幕截圖,發生問題,

有什麼建議嗎?

回答

0

刪除UITableViewAutomaticDimension,根據給定的方法動態地計算標籤的高度並相應地管理單元高度。

// ---推算身高串--- //

+(CGFloat)textHeight:(NSString*)text withFont:(UIFont*)font andMaxWidth:(CGFloat)maxWidth 
{ 
    CGFloat maxHeight = 99999; 
    CGSize maximumLabelSize = CGSizeMake(maxWidth,maxHeight); 
    NSDictionary *attributes = @{NSFontAttributeName: font}; 
    CGRect expectedLabelSize = [text boundingRectWithSize:maximumLabelSize options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:attributes context:nil]; 
    return expectedLabelSize.size.height; 
} 
+0

這是工作。謝謝!! –

相關問題