在UITableViewCell中更改元素的动态高度约束

时间:2016-10-27 12:39:08

标签: ios swift uitableview

UITextView内有UITableViewCell。 它不可编辑,从JSON解析加载的textView数据,我使用UITextView代替UILabel,因为我需要在NSAttributed Strings上进行一些点按手势,方式是无法使用UILabel完成。

对于一行,我想在UITextView上显示文字我需要它具有高度约束,常数为40。

对于我不想呈现文本的行,我需要隐藏没有高度的行,所以我使高度约束为0常数。

问题在于,虽然在这种情况下UITextView可以被隐藏,但它的高度仍然存在。

我使用自动尺寸来确定细胞高度。

尝试了很多我在stackoverflow上找到的方法,但遗憾的是没有解决我的问题。

请注意,没有必要为此UITextView设置特定的高度。我只是希望它取决于我收到的数据,要么在没有高度的情况下可见,要么在没有任何高度的情况下隐藏。

enter image description here

1 个答案:

答案 0 :(得分:0)

隐藏子视图不会将其从视图层次结构或布局计算中删除。

如果您想要隐藏UITextView并正确更新布局,我可以考虑两个选项。

如果您的定位iOS> = 9,则应使用UIStackView。当隐藏其中一个子视图时,它会自动调整其布局,这是您需要的。

否则,您必须删除并创建约束,以便将单元格的底部约束为红色视图(在图像中),而不是UITextView