如何将CustomFlowLayout分配给CollectionViewController

时间:2017-11-19 22:14:11

标签: ios swift uicollectionview uicollectionviewlayout

我为 UICollectionViewController 创建了 UICollectionViewFlowLayout 的自定义,但我不清楚如何实际分配它。在Interface Builder中,我可以将布局设置为" custom",但它只接受 UICollectionViewLayout

我发现了这个tutorial,它建议我使用这行代码以编程方式分配它:

self.collectionView.collectionViewLayout = [[CustomImageFlowLayout alloc] init];

我已尝试过这段代码的快速版本,但我的班级似乎并没有认出它。这是我在UICollectionViewFlowLayout类中的当前代码:

class CustomImageFlowLayout: UICollectionViewFlowLayout {
    override init() {
        super.init()
        setupLayout()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setupLayout()
    }

    func setupLayout() {
        minimumInteritemSpacing = 1
        minimumLineSpacing = 1
        scrollDirection = .vertical
    }

    override var itemSize: CGSize {
        set {
        }
        get {
            let numberOfColumns: CGFloat = 3

            let itemWidth = (self.collectionView!.frame.width) - (numberOfColumns - 1) / numberOfColumns
            return CGSize(width: itemWidth, height: itemWidth)
        }
    }
}

如何将此流程布局分配给我的集合视图控制器?

感谢。

0 个答案:

没有答案