每个部分的 UICollectionView 布局
Posted
技术标签:
【中文标题】每个部分的 UICollectionView 布局【英文标题】:UICollectionView layout for each section 【发布时间】:2016-07-21 00:51:16 【问题描述】:我需要将我的UICollectionView
部分之一设置为水平滚动,而UICollectionView
的其余部分则垂直滚动。
例如:SECTION 1下面应该从左到右滚动,整个UICollectionView
上下滚动。
| | ^
| [ SECTION 0 ] |
| | |
| [ <--> ] | |
| [ SECTION 1 ] | |
| [ <--> ] | |
| | |
| [ SECTION 2 ] |
| | ˅
您不能在UICollectionViewCell
中嵌套新的UICollectionView
,所以这是不可能的。我也不想使用UITableView
和UICollectionView
,因为我需要大多数其他部分是网格布局。
关于如何实现这一点的任何想法?
【问题讨论】:
您是否尝试过使用滚动视图作为主视图并在滚动视图中添加第 0 ,1, 2 部分(集合视图) 【参考方案1】:采用 Tableview 它将 scroll vertically 然后在 UITablviewCell 中采用 UIView(这样做是为了使 collectionview 和 tableview 的委托不冲突) ,使用 UIView 获取 UICollectionview 并使其滚动 水平。因此您可以轻松实现。
UITableView->UITbaleviewCell->在Tableviewcell中一个UIView->然后 UICollectionview->UICollectionviewCell
【讨论】:
不想使用表格视图(减少委托代码)。我正在考虑而不是仅仅为这一部分构建 UIViews 并将它们水平放置在滚动视图上。可能会奏效。 是的,这也可以是解决方案,但是您仍然必须管理滚动视图的代表。您可以遵循的方法是自定义集合视图布局 我在考虑布局,但不确定 atm 如何为集合视图的每个部分设置自定义布局¯_(ツ)_/¯ 所以你有两个替代解决方案,使用它...:P【参考方案2】:这比听起来容易(显然),但有两种方法可以做到这一点。
忘记第 1 节,而是将该内容设置为节标题,该标题将包含一个水平滚动的 UIScrollView。然后在那里添加您的内容并将该滚动视图的 contentSize 设置为内容的大小,您就完成了。为需要在滚动视图中响应的任何项目设置 tapGestureRecognizers。
将第 1 部分设为包含 UIScrollView 的单个单元格,就像上面的版本 1 一样。
这是一个很好的展示,我最近在概念证明中做了这个,但后来被废弃了,或者我可以为你发布一些代码。
【讨论】:
以上是关于每个部分的 UICollectionView 布局的主要内容,如果未能解决你的问题,请参考以下文章
具有特定于部分的布局和粘性标题的 UICollectionView
如何在单个列中设置每个 UICollectionView 部分
预先创建 UICollectionView 单元格 - 布局问题