【发布时间】:2015-08-30 01:10:35
【问题描述】:
我已经成功实现了UICollectionView。是否可以更改scrollDirection?
能否请您展示如何以编程方式实现它?
【问题讨论】:
我已经成功实现了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
}
【讨论】:
如果您没有使用情节提要并且一切都以编程方式完成。 所以当我们这样做时:
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
}()
【讨论】:
如果您使用的是 UICollectionViewCompositionalLayout
UICollectionViewCompositionalLayoutConfiguration 有一个 scrollDirection 属性。更改它将影响整个集合视图。如果需要,您还可以为每个部分设置单独的滚动方向。
let configuration = UICollectionViewCompositionalLayoutConfiguration()
configuration.scrollDirection = .vertical
collectionView.collectionViewLayout = UICollectionViewCompositionalLayout(
sectionProvider: { section, environment in
// Return section
},
configuration: configuration
)
【讨论】: