微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tableview的内容高度始终为零

如何解决Tableview的内容高度始终为零

我有一个包含委托和数据源的表格视图。我正在动态更改表格视图的高度。我也有一个下拉菜单,单击一次将显示表格视图,如果再次单击将隐藏它。 如果我使用tableview.isHidden = true / false,它将隐藏表格视图,但是空白可见。在调试时tableview.contentSize.height始终为零。 有人可以指导我朝正确的方向发展吗?我想念什么吗?

解决方法

使用.isHidden属性将其隐藏,但不会自动调整布局以解决不可见的事实。

有两种方法对我来说效果很好。

堆栈视图

  1. 如果您确实想显示/隐藏整个表格视图,我发现在这种情况下将元素嵌入堆栈视图中确实可以帮助您进行布局。假设您在视图控制器中将标题,按钮,表视图作为三个元素。您可以将它们放在各自的堆栈视图中,全部放在整个堆栈视图中。那你就
tableViewStackView.isHidden = true

然后,父堆栈视图调整布局以解决隐藏项的问题,并根据需要调整大小。

表格视图部分

  1. 相反,如果您要显示/隐藏表中的节或行,那么可以使用如下所示的内容,即在用户点击标题行时切换.opened属性?
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
    if item.opened == false {
       return 1 //only show the first row in the the section 
    }
       return items[section].rowCount + 1 //show all rows in the section
}

在这种情况下,有很多关于表格视图中的显示/隐藏部分的优秀教程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。