首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITableView忽略heightForRowAtIndexPath

UITableView忽略heightForRowAtIndexPath
EN

Stack Overflow用户
提问于 2016-03-12 10:47:28
回答 1查看 170关注 0票数 0

在与iOS 8中引入的自动单元格高度作斗争之后,我发现它还不够成熟,我需要手动计算我的单元格(有聊天内容)的大小。

我的方法tableView:heightForRowAtIndexPath: 调用的,它返回正确的高度(这也改变了多行等,没有问题)。我确认它被称为,因为它里面有一个断点。但是,我的表视图仍然显示如下:

其中一些文本实际上是多行的,tableView:heightForRowAtIndexPath:返回它们正确的高度。但是,我的表视图并没有正确地显示它,而是显示了所有类似于单行的内容。

我删除了表视图的估计行高度属性,没有使用自动单元格高度,也没有实现esimated行高委托方法。为什么我的细胞尺寸不正确?

更新:,我使用的是自动收费表,我将文本视图连接到容器的底部。我已经删除了约束,现在它有时会起作用。有时它确实返回正确的大小,但有时,它返回一个不正确的大小。

更新2:问题似乎与中断模式有关。如果我的文本是长的,自然地包装到下一行,它是正确的计算。但是,如果我的文本包含显式换行,则计算错误,导致多行文本像单行一样计算。这是我的代码:

代码语言:javascript
复制
UIFont *textFont = [UIFont systemFontOfSize:14.f];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
paragraphStyle.alignment = NSTextAlignmentLeft;
textAttrs = @{
              NSFontAttributeName: textFont,
              NSParagraphStyleAttributeName: paragraphStyle,
              NSForegroundColorAttributeName: [UIColor blackColor]
              };
NSString *content = message[@"content"];
CGSize fitSize = [content boundingRectWithSize:CGSizeMake(availableWidth, MAXFLOAT) options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:textAttrs context:nil].size;

此时,自然包装长文本的大小计算是正确的,但有行中断的文本本身是不正确的。为什么?

EN

回答 1

Stack Overflow用户

发布于 2016-03-12 12:27:42

看看我创建的示例项目:https://github.com/slotti85/AutoCellHeight

对我来说,自动计算很好--即使使用UITextView。在情节提要中,我未选中的UITextViewUser Interaction EnabledScrolling Enabled复选框。

告诉我如果我忘了你项目的具体内容..。

希望能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35956661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档