UITableViewAutomaticDimension在UITableviewCell的UILabel中没有设置正确的高度和表情符号
问题描述:
我正在使用UITableViewAutomaticDimension获取UITableview的单元格的动态高度。当我在UITableviewCell中的标签中设置纯文本时,一切正常。UITableViewAutomaticDimension在UITableviewCell的UILabel中没有设置正确的高度和表情符号
当我在标签中设置纯文本和表情符号字符时,单元格高度发生问题。单元格高度确实会动态增加,但由于表情符号字符的高度不正确。我认为UITableview可能会将unicode视为文本而不是表情符号图标,因此它只返回纯文本高度。
在我的情况下,标签的x原点也是动态的。
请看下面的屏幕截图,发生问题,
有什么建议吗?
答
删除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;
}
这是工作。谢谢!! –