Snapkit:如何在 scrollView 中嵌入一个简单的 tableView?

Posted

技术标签:

【中文标题】Snapkit:如何在 scrollView 中嵌入一个简单的 tableView?【英文标题】:Snapkit: How can I embed a simple tableView inside a scrollView? 【发布时间】:2020-06-25 10:51:55 【问题描述】:

我在我的 ios 项目中使用 Snapkit。

视图 -> 滚动视图 -> 表格视图

我试过 view.addSubview(scrollView) scrollView.addSubview(tableView)

我尝试在 tableview 上设置一堆约束,但它从未出现在滚动视图上。 而如果我将它添加到视图 (view.addSubview(tableView) ) 那么它会正确显示。

【问题讨论】:

将 tableView 添加为 UIScrollView 的子视图时,您的目的是什么? 需要显示由几个标签、按钮等包围的项目列表 你想要多大的桌子? scrollView 的滚动方向是什么(水平、垂直)? 表格宽度 = 100%,高度 = 所需数量。滚动方向 = 垂直 我不明白为什么你必须使用额外的 uiScrollView 来满足这些要求,但是你可以检查答案 【参考方案1】:
    label.text = "hello world"
    scrollView.addSubview(label)
    scrollView.addSubview(tableView)
    view.addSubview(scrollView)
    
    scrollView.snp.makeConstraints  (make) in
        make.edges.equalToSuperview()
        make.width.equalToSuperview()
    

    label.snp.makeConstraints  make in
        make.top.left.right.equalToSuperview()
        make.bottom.equalTo(tableView.snp.top)
    
    
    tableView.snp.makeConstraints  (make) in
        make.left.right.bottom.equalToSuperview()
        make.width.height.equalTo(view)
    
    

【讨论】:

表格上方和下方都有元素。我不希望高度为 100%。高度可以等于自然高度吗? 不过我建议你删除 scrollView 并设置:table.tableHeaderView = label 底部的元素呢? 这取决于你的要求,其实我不知道你想要什么布局。例如,如果表格视图没有滚动到底部,是否应该显示底部的标签? 使用我的布局代码,它会显示表格视图,对吧?哪个部分不符合您的要求?

以上是关于Snapkit:如何在 scrollView 中嵌入一个简单的 tableView?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SnapKit 中按比例设置边缘偏移与超级视图高度的大小

Snapkit 和 TableView 中的多个自定义单元格

scrollView 中的 webView 不能滚动?

如何在 Objc 项目中使用 SnapKit?

如何使用 SnapKit 在 iOS 中使用纵横比约束?

如何在 SnapKit 中按值增加视图高度?