swift tvOS 垂直滚动网格

swift tvOS vertical scroll Grid

我是 tvOS 开发的新手,我想创建一个每行有 4 个项目的网格。该集合应垂直滚动。我的挑战是我不确定如何处理 Apple here 在此文档中提供的信息,因为没有示例。

在 iOS 中,我们将使用类似的东西:


class GridFlowLayout: UICollectionViewFlowLayout {
    
    // here you can define the height of each cell
    let itemHeight: CGFloat = 160
    
    override init() {
        super.init()
        setupLayout()
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setupLayout()
    }
    
    /**
     Sets up the layout for the collectionView. 1pt distance between each cell and 1pt distance between each row plus use a vertical layout
     */
    func setupLayout() {
        minimumInteritemSpacing = 1
        minimumLineSpacing = 1
        scrollDirection = .vertical
    }
    
    var itemWidth: CGFloat {
        return collectionView!.frame.width / 4 - 1
    }
    
    override var itemSize: CGSize {
        set {
            self.itemSize = CGSize(width: itemWidth, height: itemHeight)
            
        }
        get {
            return CGSize(width: itemWidth, height: itemHeight)
        }
    }
    
    override func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint) -> CGPoint {
        return collectionView!.contentOffset
    }
}

然后赋值给collectionView布局

collectionView.collectionViewLayout = GridFlowLayout()

我不确定要为 tvOS 做什么我应该如何调整上面的代码以使用编程代码为 tvOS 工作。

这可能会有所帮助 https://www.bignerdranch.com/blog/custom-collection-view-layouts-with-tvos-part-2/

此外,请查看此视频:www.youtube.com/watch?v=JbQ2TOsZaNo

在这个视频中,已经对 UITableView 进行了解释,对于 UICollectionView 也可以遵循相同的步骤。