Swift:在单元格内自动调整高度UITextView

时间:2017-03-03 21:48:30

标签: ios swift uitableview textview

晚上的研究员,我遇到了这个问题:

我有一个TableView的单元格。在单元格内部有几个嵌套在许多stackViews中的元素,如图中所示。

其中一个元素是TextView,其约束为height = 150,因此我确保显示我设置为textView限制的所有300个字符。

但是如果我只有几个字符,我希望textView有不同的高度,有没有办法自动调整它?

另一个问题是我必须设置TableView的row height = 220,所以我非常确定我也需要自动调整它。

任何提示?谢谢 enter image description here

1 个答案:

答案 0 :(得分:8)

您可以使用“自动布局”来实现具有动态高度的自定义表格视图单元格。

首先,通过设置以下内容,允许表格视图使用“自动布局”约束及其单元格的内容来确定每个单元格的高度:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 100 // Something close to your average cell height

接下来,转到故事板并确保为文本视图禁用滚动。这是一个重要的设置,用于告诉textview根据其内容相应地调整自身大小

省略textview的高度约束,因为你希望它动态增长。

最后,确保已将textview的顶部固定到顶部标签的底部,并将textview的底部固定到底部标签的顶部。这些标签本身应分别固定在电池的顶部和底部,以便电池可以从上到下确定其总高度。

您可能还需要调整textview的垂直压缩阻力和垂直拥抱优先级,以便为Auto Layout提供关于应该优先压缩或扩展以填充单元格空间的视图的提示(自动布局应该在故事板上警告你。