im试图通过Apple TV的新布局实现水平滚动。已经尝试将表视图与每个单元格内的多个集合视图一起使用,但是由于与Apple TV的交互作用并不相同,因此我无法始终关注单元格以及集合视图内的单元格。
现在我正在尝试创建具有多个部分的集合视图,但是到目前为止,我的集合视图有两个部分并且水平滚动,但是结果不一样。
有人有更好的方法吗?
谢谢
可以使用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调用。