现在我试图创建一个包含多个部分的集合视图,但到目前为止,我的集合视图有两个部分并且水平滚动,但结果不一样。
有没有人有更好的方法呢?
由于
答案 0 :(得分:0)
可以使用UITableView或UICollectionView获得所需的结果。我已经使用UITableView实现了水平无限滚动。这是一个复杂的用户界面,我没有您遇到困难的地方的详细信息,因此这里有一些一般性提示:
每行都实现为一个UITableViewCell,其中包含一个无限滚动的UICollectionView,该UICollectionView跨越整个行的宽度(但没有更多)。
请确保防止表视图单元格变得可聚焦(可以覆盖改写)。该行中的产品单元格应该改为可聚焦。
将UICollectionView scrollDirection设置为水平,以允许无限水平滚动。这可能是最重要的细节。
请注意,在水平滚动UICollectionView时,minimumRowSpacing和minimumInterItemSpacing具有相反的含义,这是违反直觉的。因此 collectionView.minimumRowSpacing 设置一行产品之间的水平间距。
使用UICollectionView.contentInsets设置行的水平边距(以及垂直边距)
在UITableView与UICollectionView上
如上所述,每个水平滚动行都是一个UICollectionView,但是您可以使用UITableView或UICollectionView实现垂直布局。每个实现都有优缺点。
UITableView的主要优点在于,它在滚动时会自动添加顶部+底部渐变颜色,这非常不错。 UICollectionView没有。
UITableView的主要缺点是,它会在任何两行之间自动添加14px的空间。此行为是未记录的且不可更改。如果这会破坏交易,请改用UICollectionView布置行。
用于UITableView实现的代码更加简洁。 UITableView更容易定义行。同样,当同时使用UICollectionView进行垂直布局和每个水平滚动行时,UICollectionView回调也会变得更加复杂,因为它们会同时调用水平滚动行和实现垂直布局的UICollectionView。