动态更改表格视图单元格的高度

Posted

技术标签:

【中文标题】动态更改表格视图单元格的高度【英文标题】:Changing the height of a tableview cell dynamically 【发布时间】:2014-10-21 08:05:56 【问题描述】:

我正在实现一个看起来像 facebook newsfeed 的 tableview。

我已经根据里面的内容动态设置了tableviewcells的高度

但是现在我遇到了一个问题,就是我想显示...更多,就像在 facebook 中一样显示 3 行内容并且单击更多按钮后,必须通过显示完整来增加 tableviewcell 的高度表格视图单元格的内容。

请看下面的截图

我不想显示所有内容,而是只显示 3 行,然后 ....more 必须在那里,如果单击更多按钮,tableviewcell 的高度必须动态变化

【问题讨论】:

【参考方案1】:

您可以截断您的 UILabel 或更改您的 UITextView 的大小并放置一个标题为“更多”的相邻 UIButton。因此,当用户单击更多时,您将更改单元格的高度和 textView/label 的框架,并且应该隐藏更多按钮。

您可以使用截断它(您的文本是...)以及在其下方放置一个 UIButton 来显示带有测试的 UILabel。

因此,当用户单击按钮时,您可以更改标签的属性(行数、自动换行等)以适应所有文本以及更改单元格的高度。

【讨论】:

您能详细说明一下吗? 我想要在像这样djakffajsdlfasdkjf....more这样被截断的文本之后的更多按钮 所以将它移到标签旁边,当点击更多按钮时,然后将其从视图中移除。 在 iphone 中我的标签宽度是 300。现在如何在标签旁边显示按钮? 所以减少你的标签宽度来调整一个按钮并将你的按钮放在它旁边。【参考方案2】:

您可以使用以下方法计算文本高度:

-(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

如果字符串被渲染并限制为指定大小,则返回字符串的大小。

参数:

1) 字体:用于计算字符串大小的字体。

2) size :字符串的最大可接受大小。该值用于计算会发生换行和换行的位置。

3) 返回值 : 结果字符串边界框的宽度和高度。

据此您可以更新单元格高度。

【讨论】:

此方法已被弃用.....并且我正在使用boundingRectWithSize: 方法....但想要的是....more 通过减少内容并且单击完整内容时必须通过动态更改行高来显示

以上是关于动态更改表格视图单元格的高度的主要内容,如果未能解决你的问题,请参考以下文章

动态更改静态表格视图单元格高度

动态表格视图单元格,以编程方式更改子视图高度

如何在表格视图中更改一个单元格的高度? [复制]

设置表格视图单元格的动态高度

如何通过更改单元格的高度来创建动态 TableView 页脚

自动调整大小(动态高度)表格视图单元格的问题