UICollectionView 的每个部分的独立滚动?
Posted
技术标签:
【中文标题】UICollectionView 的每个部分的独立滚动?【英文标题】:Independent scrolling for each section of a UICollectionView? 【发布时间】:2013-01-08 22:51:37 【问题描述】:是否可以使用UICollectionView
构建每个section 可以独立滚动的布局?例如,假设有 20 行图像,其中每一行可以独立水平滚动以在屏幕外显示更多图像(在此过程中无需滚动其他行);并且整个视图可以垂直滚动以显示更多行。
我相信这样的事情可以通过 UIScrollView 中的几个 UICollectionView 实例来实现;但是,利用 UICollectionView 插入/移动部分会很棒。
我怀疑这不切实际,因为 UICollectionView 是 UIScrollView 的子类;但也许这可以通过自定义 UICollectionViewLayout 来完成?
【问题讨论】:
您可以只使用自定义单元格来获得相同的效果(而不是部分)。您的集合视图可以像表格视图(单列)一样,每个单元格都可以有一个带有一行图像的滚动视图。嵌套的滚动视图理论上应该表现得很好,因为它们被固定在不同的方向上滚动。我知道这并不能完全回答问题,但可以作为获得相同一般效果的替代解决方案。 感谢 Nebs 的建议 - 是的,如果没有办法使用每个单元格 1 个图像的部分,我可能会走这条路。 这个问题现在无法回答,因为答案是简短而令人失望的“不”。您是否考虑重写您的问题以便可以回答,可能自己提供答案并检查答案?在我看来,@TheBasicMind 值得勾选。 【参考方案1】:您可以在表格单元格中放置多个 UICollectionView。表格垂直滚动。集合视图可以配置为水平滚动。我在一个复杂的布局上做这个并且效果很好。要考虑的一个约束是,制作需要从一个表格单元格移动到另一个表格单元格的动画要困难得多,而且您不能使用集合视图布局的单一更改来为表格视图中的所有项目设置动画。但如果这些限制不是问题,那么这是一个相对简单的解决方案。
【讨论】:
感谢您的建议 - 实际上,我最终将多个 UICollectionViews 放在 UICollection 视图中;内部设置为垂直滚动,外部设置为水平滚动。这工作正常,虽然如果我可以使用带有独立滚动部分的单个 UICollectionView 会更简单...... 我也做了同样的事情,但我的表格视图因此滚动不顺畅。请帮我解决问题。 @HarshIT,我知道已经很晚了,但是这里有一个教程可以解决你的问题:link希望它对某人有所帮助。 collectionview 单元格是如何加载到表格视图中的?? @TheBasicMind 如果每个集合视图中的项目数不同,我在集合视图中会出现滚动问题。任何帮助都会很明显【参考方案2】:这是一个非常常见的问题,我需要多次解决,我创建了一个UICollectionViewLayout
,它以简洁的方式解决了这个问题,而无需创建多个集合视图,这意味着它支持在部分之间移动项目等。
https://github.com/joelekstrom/JEKScrollableSectionCollectionViewLayout
【讨论】:
以上是关于UICollectionView 的每个部分的独立滚动?的主要内容,如果未能解决你的问题,请参考以下文章
如何在单个列中设置每个 UICollectionView 部分
嵌套的 UICollectionView 为每个部分返回相同的值 - Swift
UICollectionView 中的 UICollectionViewFlowLayout - 每个部分中的动态单元格数
如何在 UICollectionView 的部分标题中动态添加标签和按钮?