我正在使用UITableViewAutomaticDimension来获取UITableview的单元格的动态高度。当我在UITableviewCell内的标签中设置纯文本时,一切正常。
当我在标签中设置纯文本和表情符号字符时,单元格高度出现问题。单元格高度确实动态增加,但由于表情符号字符,高度错误。我认为UITableview可能会将unicode视为文本而不是表情符号图标,因此它只返回纯文本高度。
在我的情况下,标签的x原点也是动态的。
请查看以下屏幕截图,了解发生的问题,
有什么建议吗?
答案 0 :(得分: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;
}