什么样的滚动视图包含 2 个表视图和集合视图

Posted

技术标签:

【中文标题】什么样的滚动视图包含 2 个表视图和集合视图【英文标题】:What Kind of scroll view to contain 2 tableviews and collectionview 【发布时间】:2019-10-03 01:13:00 【问题描述】:

我有一个复杂的视图,其中包含图像滑块(collectionView)、优惠列表(tableView)和服务列表(TableView),主内容视图应该是可滚动的,所有子视图都不应该是可滚动的。

我尝试制作父视图 UIScrollView,但我遇到了一个问题,即当第一个 tableview 项目超出屏幕限制时,它不会显示超出的元素。

我也尝试强制使用完整的 tableview 高度,但我在滚动时遇到了问题

self.tableView.frame.size = CGSize(width: self.tableView.contentSize.width,
                                   height: self.tableView.contentSize.height)

有没有办法强制显示所有 tableview 元素,或者我应该使用 UIScrollView 以外的其他类型?

Here is an image for what i want to display

【问题讨论】:

你应该为你想在这里显示的 UI 添加图像,我真的不知道你在这里的意思。但也许您应该为每个表格视图和集合视图添加 3 个容器视图,然后将它们添加到您的滚动视图中。在那里你可以控制每个视图单独的视图控制器。 我不知道它是否看起来太复杂了,但是在我看来,使用 UIScrollView 来布置所有这些可能会很困难。我可能会通过为设计的每个部分制作一个带有不同单元格的 tableview 来解决这个问题。这是因为最外面的 tableview 将处理您的垂直滚动和每个段的大小。这样就可以更容易地逐个单元格地处理每个段,特别是因为集合视图看起来像是水平的而不是垂直的。 我会使用单个表格视图,每个元素都有多个自定义单元格。 @MaiQuânNguyễn 抱歉,这是我在这里的第一篇文章,所以我不能上传嵌入图片,但我可以嵌入图片链接:i.stack.imgur.com/5no5B.png @AlanS 谢谢你的帮助,我会用你的结构。 【参考方案1】:

为此,您需要禁用 UITableview 滚动,例如:

tableView.scrollEnabled = false

那么你需要得到的tableview元素的数量乘以你的tableview单元格的高度,然后将该高度设置为tableview,如:

tableViewHeight.constant = count * z

其中 z 是 tableview 单元格的高度。 现在一切就绪。

【讨论】:

以上是关于什么样的滚动视图包含 2 个表视图和集合视图的主要内容,如果未能解决你的问题,请参考以下文章

使用绑定时滚动 Xamarin Forms 列表视图

滚动浏览集合视图时重置按钮和标签

如何在按钮按下时在集合视图中滚动(水平)?

滚动视图还是集合视图?

将滚动视图添加到集合视图层次结构

滚动浏览集合视图后,为什么视图会消失?