我正在使用视图并在其中实现集合视图
当我尝试将数据源和委托引用到我的colelctionview时,它会给出错误
我的ClassFile
class MenuBar : UIView, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout{
let collectionView : UICollectionView = {
let layout = UICollectionViewFlowLayout()
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.backgroundColor = UIColor.rgb(red: 230, green: 32, blue: 31)
cv.delegate = self // Error here
return cv
}()
override init(frame: CGRect){
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
我无法将委托和数据源提供给我的collectionview 我也实现了以下两种方法
cellForItemAt indexPath numberOfItemsInSection
任何帮助都会受到欢迎
答案 0 :(得分:3)
这是因为你试图在闭包中访问自己
lazy var collectionView : UICollectionView = {
[unowned self] in
let layout = UICollectionViewFlowLayout()
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.backgroundColor = UIColor.rgb(red: 230, green: 32, blue: 31)
cv.delegate = self // Error here
return cv
}()
这应该有效