UITextView高度未在UITableViewCell中调整大小

时间:2018-07-27 07:12:06

标签: ios swift uitableview autolayout uitextview

以下是对UITextView的约束:

enter image description here

其他子视图的约束:

UILabel:

enter image description here

UIView:

enter image description here

滚动被禁用:

enter image description here

viewDidLoad:

self.tableLeadsOverview.estimatedRowHeight = 100
self.tableLeadsOverview.rowHeight = UITableViewAutomaticDimension  

内容:

  

1527年三叶草岭美国弗吉尼亚州伯灵顿博士90210

输出:

enter image description here

3 个答案:

答案 0 :(得分:2)

问题出在UILabel的底部约束上。尝试删除它,因为您给标签设置了高度限制,因此它将始终保留在左上角,或者如果您希望将标签保持在单元格的中心。

尝试并分享结果。

答案 1 :(得分:0)

在这种情况下,无法自动调整大小,因为UITextView包含用于显示其包含内容的滚动视图以及具有contentSizeframe的滚动视图,因此,如果其内容/文本增加,则它会增加其contentSize而不是框架,因此像元大小不会自动增加。请按照以下步骤解决此问题。

  1. 在现有约束条件下,为 UITextView,并将其用于单元格类。
  2. 也将UITextView的引用出口添加到单元格类中
  3. 现在来看一下CellForRowAtIndexPath的数据源方法 UITableView首先在此处将文本/内容设置为 UITextView,然后设置UITextView's高度限制 如UITextView's contentSize.height使用高度约束 您在上方获得的出口。

任何疑问都让我知道。

答案 2 :(得分:0)

我在像您这样的类似牢房中工作。

我的解决方案是创建一个高度灵活的标签,以显示textField的内容。标签将所有约束作为文本字段(高度约束除外)设为numberOfLines设置为0,以便高度调整rowHeight的大小。不编辑时,隐藏textField。当用户选择行(开始编辑)时,隐藏标签,显示textField,然后调用[textField becomeFirstResponder]

有点棘手。 :]