无法根据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中标签的文本大小设置单元格大小的主要内容,如果未能解决你的问题,请参考以下文章