【问题标题】:UITableViewCell dynamic height + hidden elements take up space in Swift?UITableViewCell 动态高度 + 隐藏元素在 Swift 中占用空间?
【发布时间】:2016-11-21 15:02:48
【问题描述】:

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

我该怎么做?因为当我尝试隐藏元素时也会发生。

这就是我想要的:

现实:

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

我该如何解决这个问题?

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

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

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 没有。您可以在交换机的已发送操作 IBAction 方法中更改约束。
      • 您必须以某种方式重新计算单元格的高度,它不会自动为您调整大小。
      • 你根本不需要计算。
      【解决方案3】:

      如果你隐藏你的文本视图,你的文本视图仍然存在,文本长度只要它没有被隐藏。

      因此,与其隐藏/显示文本视图的文本,不如将文本视图的文本从“”->“你想显示的内容”更新。

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

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

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

      其实我推荐你直接用UILabel代替UITextField,你只需要把LabellineNumber设置成0,可以忽略scroll and size setting文本视图。

      【讨论】:

      • 我需要 textview 因为用户可以写评论。所以我需要显示一个空的文本视图。
      • 是的。您可以显示一个空的文本视图,只需要使文本视图不可滚动并具有您想要的适当大小。
      • 但我认为你错过了我每次都必须重新计算行高的点。
      猜你喜欢
      • 2015-07-25
      • 2011-04-11
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      相关资源
      最近更新 更多