UITextView 高度未在 UITableViewCell 中调整大小
Posted
技术标签:
【中文标题】UITextView 高度未在 UITableViewCell 中调整大小【英文标题】:UITextView height not resizing in UITableViewCell 【发布时间】:2018-07-27 07:12:05 【问题描述】:以下是对UITextView
的约束:
其他子视图的约束:
UILabel:
UIView:
禁用滚动:
viewDidLoad:
self.tableLeadsOverview.estimatedRowHeight = 100
self.tableLeadsOverview.rowHeight = UITableViewAutomaticDimension
内容:
1527 Clover Ridge Dr Burlington VA USA 90210
输出:
【问题讨论】:
您不需要在tableView
上调用beginUpdates
和endUpdates
以进行任何调整吗?你可以在textViewDidChange
试试看
@RakeshaShastri:为什么我需要在自动布局中使用它?
因为tableView需要更新?您已经为 tableViewCell 设置了高度。如果 tableView 需要 layoutChange,您需要在进行必要的更改后调用这两个方法,您的自动布局代码将为您完成。你只需要调用这些方法让它们反映。
@BhavinKansagara:你去吧。更新了问题。
尝试移除 UILable 的底部约束
【参考方案1】:
问题在于 UILabel 的底部约束。尝试删除它,因为您为标签提供了高度限制,因此它始终保留在左上角,或者如果您想将标签保持在单元格的中心。
尝试并分享结果。
【讨论】:
就是这样。这就是问题所在。 @karthikeyan:非常感谢。在您的评论通知之前实际阅读此答案的通知。【参考方案2】:在这种情况下自动调整大小将不起作用,因为 UITextView
包含滚动视图以显示其包含和滚动视图具有其 contentSize
和 frame
,因此如果其内容/文本增加它会增加其 contentSize
而不是框架,因此单元格大小不会自动增加。请按照以下步骤解决此问题。
-
使用现有约束为
UITextView
并将其导出到单元类。
将 UITextView 的引用出口也带到单元格类中
现在来到CellForRowAtIndexPath
的数据源方法
UITableView
这里首先将文本/内容设置为
UITextView
然后设置 UITextView's
高度约束
如UITextView's
contentSize.height
使用高度约束
你在上面拿的插座。
如有任何疑问,请告诉我。
【讨论】:
好点。尝试了相同的方法,但约束的常数为 35.5,这是不正确的。 你必须设置高度约束 = UITextViewOutlet.contentSize.height 是的。只是这样做 移除标签的高度限制【参考方案3】:我曾在与您类似的单元上工作过。
我的解决方案是创建一个高度灵活的标签来显示 textField 的内容。标签具有文本字段的所有约束,除了高度约束,numberOfLines
设置为0
,以便它可以帮助您调整rowHeight
的大小。不编辑时,隐藏 textField。当用户选择行(开始编辑)时,隐藏标签,显示 textField,然后调用[textField becomeFirstResponder]
。
有点棘手。 :]
【讨论】:
以上是关于UITextView 高度未在 UITableViewCell 中调整大小的主要内容,如果未能解决你的问题,请参考以下文章