实现Apple TV收藏查看水平无限滚动

问题描述 投票:2回答:1

im试图通过Apple TV的新布局实现水平滚动。已经尝试将表视图与每个单元格内的多个集合视图一起使用,但是由于与Apple TV的交互作用并不相同,因此我无法始终关注单元格以及集合视图内的单元格。

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

有人有更好的方法吗?

谢谢

AppleTV Example

My CollectionView

ios swift uicollectionview apple-tv
1个回答
0
投票

可以使用UITableView或UICollectionView获得所需的结果。我已经使用UITableView实现了水平无限滚动。这是一个复杂的用户界面,我没有您遇到困难的地方的详细信息,因此这里有一些一般性提示:

每行都实现为UITableViewCell,其中包含一个无限滚动的UICollectionView,该UICollectionView跨越整个行的宽度(但没有更多)。

请确保防止表格视图单元格变得可聚焦(可以覆盖)。该行中的产品单元格应该改为可聚焦。

将UICollectionView scrollDirection设置为水平以允许无限水平滚动。这可能是最重要的细节。

请注意,在水平滚动UICollectionView时,minimumRowSpacing和minimumInterItemSpacing具有相反的含义,这是违反直觉的。因此collectionView.rowSpacing设置一行产品之间的水平间距。

使用UICollectionView.contentInsets设置行的水平边距(以及垂直边距)

关于UITableView与UICollectionView

如上所述,每个水平滚动行都是一个UICollectionView,但是您可以使用UITableView或UICollectionView来布局行。每个实现都有优缺点。

UITableView的主要优点是,它在滚动时会自动添加顶部+底部渐变颜色,这非常不错。 UICollectionView没有。

UITableView的主要缺点是,它会在任何两行之间自动添加14px的空间。此行为是未记录的且不可更改。如果这是破坏交易的方法,请改用UICollectionView布置行。

UITableView实现的代码更干净。 UITableView更容易定义行。同样,当同时使用UICollectionView进行垂直布局和每个水平滚动行时,UICollectionView回调也变得更加复杂,因为它们同时被水平滚动行和实现垂直布局的UICollectionView调用。

© www.soinside.com 2019 - 2024. All rights reserved.