2016-11-03 3 views
4

Я использую UITableViewAutomaticDimension для динамической высоты ячеек UITableview. Все работает нормально, когда я устанавливаю обычный текст в ярлыке внутри UITableviewCell.UITableViewAutomaticDimension не устанавливает правильную высоту с символами emoji в UILabel UITableviewCell

Проблема возникает с высотой ячейки, когда я устанавливаю обычный текст вместе с символами эможи в метке. Высота ячейки увеличивается динамически, но высота неправильна из-за символов эможи. Я думаю, что UITableview может рассматривать unicode как текст вместо значка emoji, следовательно, он возвращает только высоту обычного текста.

В моем случае происхождение 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

Это рабочая. Благодаря!! –

Смежные вопросы