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 也可以遵循相同的步骤。
我是 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 也可以遵循相同的步骤。