无法根据objective-c中标签的文本大小设置单元格大小
我正在尝试聊天应用程序。 聊天工作正常。 面对一些用户界面问题。
1.我正在使用自动布局标签。 所以根据邮件大小自动标签获取展开。 但是,我在UITableViewCell中有标签。 我无法dynamic计算行高。
我的代码:
-(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个字符。 不仅如此,它不工作。 根据标签尺寸,单元尺寸没有增加。 请引导我。
我的输出:
在上面的截图中,小信息显示时间和完整信息。 如果我们input大文本,20%的信息会被隐藏起来。 请亲引导我 如何解决这个问题?
使用Storyboard作为你的标签,只使用单个标签设置你的标签具有所有4个约束,左,右,上,下设置行数为0.在你的ViewController中使用这2种方法,Table视图会根据你的文本自动设置高度
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewAutomaticDimension; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return UITableViewAutomaticDimension; }
- 刷新UITableView在第三个单元格后崩溃后滚动到顶部
- 滚动时在UITableViewCells中滑动
- 为UITableView调用beginUpdates / endUpdates有什么好处,而不是这样做?
- 静态UITableViewCell在viewWillAppear中更改不会反映在显示中
- UITableViewController以编程方式访问静态单元格
- iOS UITableViewCell需要按两次来调用didSelectRowAtIndexPath
- 如何删除UITableView中的箭头
- iOS UITableViewCellAccessoryCheckmark每次滚动都可见
- iOS 8 UITableViewRowAction:向左滑动,图像?