2016-11-03 8 views
4

UITableViewのセルの動的高さにUITableViewAutomaticDimensionを使用しています。 UITableviewCell内のラベルにプレーンテキストを設定すると、すべてうまく動作します。UITableViewAutomaticDimensionがUITableviewCellのUILabelで正確な高さを設定していません

ラベルに絵文字と一緒にプレーンテキストを設定すると、セルの高さに問題が発生します。セルの高さは動的に増加しますが、絵文字によって高さが正しくありません。私はUITableviewは、絵文字アイコンの代わりにテキストとしてユニコードを考慮している可能性があるので、それはプレーンテキストの高さだけを返しますと思います。

私の場合、ラベルの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

だ---文字列の高さを計算します。ありがとう!! –

関連する問題