无法根据objective-c中标签的文本大小设置单元格大小

Posted

技术标签:

【中文标题】无法根据objective-c中标签的文本大小设置单元格大小【英文标题】:Unable to set cell size according to label's text size in objective-c 【发布时间】:2015-12-30 13:42:09 【问题描述】:

我正在尝试聊天应用程序。聊天工作正常。面临一些用户界面问题。

1. 我正在为标签使用自动布局。所以标签会根据消息大小自动扩展。但是,我在 UITableViewCell 中有标签。我无法动态计算行高。

我的代码:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
CGSize textSize = 268, CGFLOAT_MAX;
CGSize size = [message sizeWithFont:[UIFont fontWithName:@"Helvetica Neue" size:14] constrainedToSize:textSize lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height = size.height  < 65 ? 65 : size.height;
return height;

我的标签子类代码

- (void)drawTextInRect:(CGRect)rect

    self.textInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, self.textInsets)];


- (CGSize) intrinsicContentSize

    self.textInsets = UIEdgeInsetsMake(5, 5, 5, 5);
    CGSize superSize = [super intrinsicContentSize] ;
    superSize.height += self.textInsets.top + self.textInsets.bottom ;
    superSize.width += self.textInsets.left + self.textInsets.right ;
    return superSize ;

上述代码适用于小型消息,例如 400 到 800 个字符。不仅如此,它还不起作用。根据标签大小,单元格大小没有增加。请指导我。

我的输出:

在上面的截图中,小消息显示时间和完整消息。如果我们输入大文本,20% 的信息会被隐藏。请指导我。如何解决?

【问题讨论】:

看看这个简短的答案,如果这可以帮助***.com/questions/34435024/…用tableView添加了对警察的回答 你可以使用大小来适应属性 可以添加cellforrowatindex代码 【参考方案1】:

为您的标签使用情节提要并仅使用单个标签 将您的标签设置为具有所有 4 个约束,左、右、上、下 设置行数 0。 在你的 ViewController 中使用这两种方法,表格视图会根据你的文字自动设置高度

 -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath

   return UITableViewAutomaticDimension;

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 return UITableViewAutomaticDimension;

【讨论】:

我试过这个。它正在工作。但是,在滚动时,单元格大小会减小。任何的想法。?? @Arslan 阿西姆 你是否为 label 设置了所有 4 个约束? 嗨..我已经尝试过你上面的代码。得到了输出。我面临另一个新问题。请帮助我。我正在做聊天应用程序。表格视图的最后一行中的消息已更新。我试过了,但失败了。请在此链接中帮助我。 ***.com/questions/34547969/…

以上是关于无法根据objective-c中标签的文本大小设置单元格大小的主要内容,如果未能解决你的问题,请参考以下文章

CustomUITableView 中标签的文本没有改变

增加饼图matplotlib中标签的字体大小[重复]

如何从不同的方法访问 UICollectionViewCell 中标签的文本?

swift中标签的页面控制

UIStackView 中标签的内容拥抱和压缩问题设置

具有自动布局的tableView中标签的高度问题