UITableViewCell动态高度+隐藏元素占用Swift空间?

时间:2016-07-18 21:29:25

标签: ios swift uitableview

这就是场景:我有一个表,其中有动态高度的单元格。在每个单元格中,我都有一个标签和一个开关。当我运行应用程序时,只能看到这两个,但后来我将开关设置为true,然后在这两个元素下面出现一个(隐藏的?)textview,使得单元格的高度更大。

我该怎么做?因为当我尝试隐藏元素时也会占据一席之地。

这就是我想要的: enter image description here

现实: enter image description here

我该怎么做? 我尝试使用新的Stack View,它可以很好地处理它,但不是在表格单元格中....

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

我认为可以使用约束来解决:
  - 为文本视图设置高度约束,
  - 在视图控制器中为该约束创建插座,
  - 使用开关时,在视图控制器中更改约束的常量属性。

答案 1 :(得分:0)

如果隐藏文本视图,文本视图仍然存在,文本长度只要不隐藏就可以了。

因此,您最好不要隐藏/显示文字视图的文字,而是更新文字视图的文字,从#34;" - > "你想表现出什么。"

在这种情况下,自动布局可以轻松处理您的查询。你只需要设置

self.tableView.estimatedRowHeight = 65 //whatever number
self.tableView.rowHeight = UITableViewAutomaticDimension

并在单元格xib / storyboard中,在文本视图的topbottom上添加约束,也不要忘记使文本视图不可滚动。

实际上,我建议您只使用UILabel代替UITextField,只需将lineNumber的{​​{1}}设置为Label即可,你可以忽略文本视图的0

答案 2 :(得分:0)

我解决了它混合这个答案:Dynamic Height Issue for UITableView Cells (Swift)表示动态高度,然后对于显示与否的视图我向视图添加了一个高度约束,然后在cellForRowAtIndexPath上将约束的常量设置为0如果你展示它,你需要隐藏它或高度。

希望它有所帮助!