2017-03-03 108 views
0

晚上研究员,我得到了这个问题:Swift:自动调整单元格内的高度UITextView

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

其中一个元素是TextView,女巫的约束为height = 150,所以我一定要显示所有300个字符,我将其设置为textView的限制。

但如果我只有几个字符,我想为textView有不同的高度,有没有一种方法来自动调整它?

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

任何提示?谢谢您 enter image description here

回答

3

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

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

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

接下来,进入你的故事板,并确保滚动已停用您的文字视图。这是一个重要的设置,可以告诉textview根据其内容相应地调整自己的大小。

由于您希望它动态增长,所以省去了textview的高度限制。

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

您可能还需要调整垂直压缩阻力和textview的垂直拥抱优先级,为Auto Layout提供一个提示,指示应优先考虑哪个视图进行压缩或展开以填充单元格空间(自动布局应该在故事板上对此进行警告)。