此刻我试图将两个表视图放在一个控制器的滚动视图中,而这些表视图却在另一个控制器的下面,我遇到了问题。这两个tableview使用scrollview进行滚动。 所以我在scrollview中使用了垂直的stackview。但是当我创建单元格时,tableview的高度都不会增加,scrollview也无法滚动。 我应该如何使用scrollview滚动来滚动tableview?
-滚动视图 ----- VerticalStackView -------- Tableview 1 -------- Tableview 2
我真的迷失了它。任何帮助将不胜感激。
答案 0 :(得分:0)
您需要根据它们的内容使每个UITableView
定义自己的大小。为此,请使用下面的类对它们进行子类化。
final class ContentSizedTableView: UITableView {
override var contentSize:CGSize {
didSet {
invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
layoutIfNeeded()
return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
}
}
然后,需要为每个UITableView
设置isScrollEnabled = false
。否则,它们的定义大小将为0。
然后将每个表视图添加到您在scrollview内部使用的堆栈视图中。如果它们的总高度大于屏幕高度,它将滚动。