【发布时间】:2017-02-02 10:20:46
【问题描述】:
尝试初始化一个collection view类并得到以下错误:
必须调用超类'UICollectionView'的指定初始化器
数据正在从另一个 ViewController 传递,我希望在用户搜索时从 ViewController 中绘制框架。
class searchLocationsCollectionViewManager: UICollectionView, UICollectionViewDataSource, UICollectionViewDelegate {
weak var collectionView: UICollectionView! {
didSet {
collectionView.dataSource = self
collectionView.delegate = self
}
}
// Data handler
var data: [[String:Any]]? {
didSet {
print(data!)
//collectionView.reloadData()
}
}
init(collectionView: UICollectionView, frame: CGRect) {
self.collectionView = collectionView
super.init()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
// This is the current method for returning the cell.
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
return UICollectionViewCell()
}
关于为什么会发生上述情况的任何想法?
【问题讨论】:
-
UICollectionView子类中的UICollectionView属性的用途是什么?考虑分配初始值时未调用didSet。如果您的意思是UICollectionViewController,那么已经有一个UICollectionView属性。
标签: ios swift3 uicollectionview