如何在滚动视图中动态增加两个Tableview的高度

时间:2020-11-07 16:44:15

标签: ios swift

此刻我试图将两个表视图放在一个控制器的滚动视图中,而这些表视图却在另一个控制器的下面,我遇到了问题。这两个tableview使用scrollview进行滚动。 所以我在scrollview中使用了垂直的stackview。但是当我创建单元格时,tableview的高度都不会增加,scrollview也无法滚动。 我应该如何使用scrollview滚动来滚动tableview?

-滚动视图 ----- VerticalStackView -------- Tableview 1 -------- Tableview 2

我真的迷失了它。任何帮助将不胜感激。

1 个答案:

答案 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内部使用的堆栈视图中。如果它们的总高度大于屏幕高度,它将滚动。