如何动态增加滚动视图中两个表格视图的高度

Posted

技术标签:

【中文标题】如何动态增加滚动视图中两个表格视图的高度【英文标题】:How to Dynamically increase height of Two Tableview in a Scrollview 【发布时间】:2020-11-07 16:44:15 【问题描述】:

目前我有一个问题,我试图将两个表格视图放在一个控制器的滚动视图中,并且这些表格视图被放置在另一个下方。这两个 tableview 使用 scrollview 进行滚动。 所以我在滚动视图中使用了垂直堆栈视图。但是当我创建单元格时,tableview 的高度都没有增加,scrollview 也无法滚动。 我应该如何使用 scrollview 滚动来滚动 tableview?

-- 滚动视图 -----垂直堆栈视图 --------表格视图1 --------表格视图2

我真的很迷茫。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您需要让每个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。

然后只需将每个表视图添加到您在滚动视图中使用的堆栈视图。如果它们的组合高度大于屏幕高度,它将滚动。

【讨论】:

以上是关于如何动态增加滚动视图中两个表格视图的高度的主要内容,如果未能解决你的问题,请参考以下文章

如何动态调整滚动视图高度

使用动态单元格高度时将表格视图滚动到底部

如何将 UITableView 的高度调整为内容大小的高度?

视图中的滚动视图和滚动视图中的表格视图;我如何引用它?

UITableview 单元格高度在 iOS 14.0 中的滚动表视图上发生变化

使用Objective C增加单元格数量时如何动态增加UITableView高度?