我在 ScrollView 中放置了一个表格 View 和一个 View ,如何根据表格 View 中的单元格数量以及内容 View 中存在的内容动态更改 ScrollView 的高度
最佳答案
您需要设置 ScrollView 的 contensize。 您可以通过适当的自动布局或以编程方式完成此操作
CGRect contentRect = CGRectZero;
for (UIView *view in self.scrollView.subviews) {
contentRect = CGRectUnion(contentRect, view.frame);
}
self.scrollView.contentSize = contentRect.size;
在 Swift 3 中
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
var contentRect = CGRect.zero
for view: UIView in scrollView.subviews {
contentRect = contentRect.union(view.frame)
}
contentRect.size.height = contentRect.size.height + 20
scrollView.contentSize = contentRect.size
}
在 Swift 4 中
这是 Swift 4 中更简洁的版本。Swift 4 归功于此 ans
extension UIScrollView {
func updateContentView() {
contentSize.height = subviews.sorted(by: { $0.frame.maxY < $1.frame.maxY }).last?.frame.maxY ?? contentSize.height
}
}
您可以在 Storyboard 中完成相同的操作。 有黑客来实现这一点。
根据要求将约束添加到 scrollview 的顶部、左侧、右侧和高度为 1000 或更多。您的 ScrollView 可能会超出您的 View Controller 本身的高度。
然后您可以在 ScrollView 底部和最后一个 subview (在您的情况下 View 包含 TableView 和 PaymentView)底部之间添加约束为 0 或 10。
3.您现在可以删除高度限制。
但在此之前确保 ScrollView 的所有 subview 之间的约束是正确的。
希望对您有所帮助。快乐编码!!
关于ios - 如何动态增加 ScrollView 的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44839101/