Swift 在 UITableView 中为容器视图设置约束

Posted

技术标签:

【中文标题】Swift 在 UITableView 中为容器视图设置约束【英文标题】:Swift set constraints to container view in UITableView 【发布时间】:2017-03-23 08:21:51 【问题描述】:

我有UITableView,我将容器视图作为标题放在顶部,如下所示:

一切正常。

现在我想在点击单元格时隐藏此容器标题视图。

我的第一次尝试是:

UIView.animate(withDuration: 0.3, animations: 
    self.containerView.frame.size.height = 0
)

女巫隐藏视图,但不显示单元格,这是预期和正常的,因为我只更改容器视图的框架,而不是其他视图。

然后我尝试在情节提要中添加约束,但由于某种原因我无法设置它们。

这是为什么呢?以及如何实现隐藏容器视图,并将所有其他单元格置于顶部。

【问题讨论】:

尝试更改tableview.estimatedSectionHeaderHeight = 0 不,这没有帮助...结果保持不变。 我建议将标题视图添加为另一个单元格并将其隐藏(因为您隐藏了表格视图中的第一个单元格),它应该是第一个单元格... 一旦您将 headerview 框架高度更改为 0,尝试将 headerview 重新分配到该表我已经做了同样的事情并且它为我工作 请查看***.com/questions/19056428/… 【参考方案1】:

试试这个

UIView.animate(withDuration: 0.5) 
            let headerView = tableView.tableHeaderView!
            headerView.setNeedsLayout()
            headerView.layoutIfNeeded()
            headerView.frame.size.height = 0
            tableView.tableHeaderView = headerView
        

【讨论】:

以上是关于Swift 在 UITableView 中为容器视图设置约束的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中为完整的 UITableView 创建模糊效果

uitableview 内容大小未正确返回 swift

如何在 Swift 4 中为 UICollectionView 的部分设置最大元素数?

Swift:使用 prepareForSegue 将 UIView 容器的高度设置为嵌入式 UITableView 的高度

如何在 Swift 中为 UIRefreshControl 添加可访问性

Swift:在 UITableView 中动画扩展行?