2016-11-03 43 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

这是工作。谢谢!! –

相关问题