我在 UITableViewCell
中有一个 UITextView
。
它不可编辑,从 JSON
解析加载到 textView 的数据,我使用 UITextView
而不是 UILabel
因为我需要在 NSAttributed Strings 上进行一些点击手势
,以 UILabel
无法完成的方式。
对于一行,我想在 UITextView
上显示文本,我需要它可见,高度限制为常量 40。
对于我不想显示文本的行,我需要它隐藏没有高度,所以我将高度约束设置为 0 常量。
问题是虽然在那种情况下 UITextView
可以隐藏,但它的高度仍然存在。
我对单元格高度使用自动尺寸。
尝试了很多我在 stackoverflow 上找到的方法,但不幸的是没有解决我的问题。
请注意,没有必要为此 UITextView
指定特定高度。我只是希望它取决于我收到的数据,要么在没有一定高度的情况下可见,要么在没有任何高度的情况下隐藏。
最佳答案
隐藏 subview 不会将其从 View 层次结构或布局计算中移除。
如果您想隐藏 UITextView
并正确更新布局,我可以想到两个选项。
如果您的目标 iOS >= 9,您应该使用 UIStackView
。当其 subview 之一被隐藏时,它会自动调整其布局,这正是您所需要的。
否则,您将不得不删除并创建约束,以便将单元格底部限制为红色 View (在您的图像中)而不是 UITextView
。
关于ios - 更改 UITableViewCell 中元素的动态高度约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40284804/