我已经成功实施了
UICollectionView
。可以改变scrollDirection
吗?
您能否展示如何以编程方式实现它?
这就是您在代码中使用
UICollectionViewFlowLayout
创建它的方式
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .vertical
let collectionView = UICollectionView(frame: frame, collectionViewLayout: layout)
或者如果您正在使用现有的集合视图
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.scrollDirection = .vertical
}
如果您使用UICollectionViewCompositionalLayout
UICollectionViewCompositionalLayoutConfiguration 有一个 scrollDirection 属性。更改它会影响整个集合视图。如果需要,您还可以为每个部分设置单独的滚动方向。
let configuration = UICollectionViewCompositionalLayoutConfiguration()
configuration.scrollDirection = .vertical
collectionView.collectionViewLayout = UICollectionViewCompositionalLayout(
sectionProvider: { section, environment in
// Return section
},
configuration: configuration
)
如果您没有使用故事板并且所有操作都是以编程方式完成的。 所以当我们这样做时:
lazy var snapCollectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
let collectionView = UICollectionView(frame: CGRect.zero,
collectionViewLayout: layout)
layout.scrollDirection = .horizontal
collectionView.delegate = self
collectionView.dataSource = self
collectionView.backgroundColor = UIColor(named: "background")
return collectionView
}()
设置布局方向
if let flowLayout = yourCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
flowLayout.scrollDirection = .horizontal
yourCollectionView.collectionViewLayout = flowLayout
}