实现Apple TV collectionview水平无限滚动

时间:2017-03-02 00:11:25

标签: ios swift uicollectionview apple-tv

我尝试用苹果电视的新布局来实现水平滚动。 已经尝试在每个单元格中使用具有多个集合视图的表视图,但由于与apple tv的交互不一样,我无法继续关注集合视图中的单元格和单元格。

现在我试图创建一个包含多个部分的集合视图,但到目前为止,我的集合视图有两个部分并且水平滚动,但结果不一样。

有没有人有更好的方法呢?

由于

AppleTV Example

My CollectionView

1 个答案:

答案 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。