我为 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)
}
}
}
如何将此流程布局分配给我的集合视图控制器?
感谢。