如何更改UICollectionView滚动方向?

问题描述 投票:0回答:4

我已经成功实施了

UICollectionView
。可以改变
scrollDirection
吗?

您能否展示如何以编程方式实现它?

swift uicollectionview
4个回答
158
投票

这就是您在代码中使用

UICollectionViewFlowLayout

创建它的方式
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .vertical
let collectionView = UICollectionView(frame: frame, collectionViewLayout: layout)

或者如果您正在使用现有的集合视图

if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
    layout.scrollDirection = .vertical
}

1
投票

如果您使用UICollectionViewCompositionalLayout

UICollectionViewCompositionalLayoutConfiguration 有一个 scrollDirection 属性。更改它会影响整个集合视图。如果需要,您还可以为每个部分设置单独的滚动方向。

let configuration = UICollectionViewCompositionalLayoutConfiguration()
configuration.scrollDirection = .vertical

collectionView.collectionViewLayout = UICollectionViewCompositionalLayout(
    sectionProvider: { section, environment in
        // Return section
    },
    configuration: configuration
)

0
投票

如果您没有使用故事板并且所有操作都是以编程方式完成的。 所以当我们这样做时:

  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
    }()

0
投票

设置布局方向

if let flowLayout = yourCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
            flowLayout.scrollDirection = .horizontal
            yourCollectionView.collectionViewLayout = flowLayout
}
© www.soinside.com 2019 - 2024. All rights reserved.