gpt4 book ai didi

ios 通过容器 View 调整 scrollview 的大小,里面有 tableview

转载 作者:行者123 更新时间:2023-11-28 07:56:15 24 4
gpt4 key购买 nike

我有下一个 View 结构:

vc
-view
--safe area
--scrollview
---view
----containerview1
----containerview2
----containerview3
-----tableviewcontroller(in containervew3)

Tableviewcontroller 有添加或删除行的按钮,我想调整 ScrollView 的大小以显示完整的 tableview 内容(不在 tableview 中滚动)。我试过这样的解决方案:来自 hereSizing a Container View with a controller of dynamic size inside a scrollview但没有成功。我用的是 iOS 10.0&swift

最佳答案

首先是约束。您必须对 UIScrollView 和容器的 View 有适当的约束

接下来您需要的是 tableviewController 的高度约束(您可以将高度设置为 0,关系大于等于 750 优先级,这样如果发生错误,约束永远不会中断)

当您的数据插入/删除发生时,获取该高度约束的 IBOutlet 您的内容大小将更改并将该内容大小高度应用于 IBOutlet 约束的常量,并且不要忘记 layoutIfNeeded。

让你的 tableview 滚动反弹到 false

创建协议(protocol)以通知容器 View 高度变化

protocol ContainerTableDelegate {
func dataChanged(height: CGFloat)
}

当高度改变时通知父 View Controller

    delegate?.dataChanged(self.heightConstraint.constant)

现在在拥有所有容器的主视图 Controller 中

实现

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) 

确定 ViewController 将委托(delegate)设置为 self 实现委托(delegate)并更改容器 View 3 常量的高度(您也需要这个)

希望能解决您的问题

关于ios 通过容器 View 调整 scrollview 的大小,里面有 tableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47996032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com