我已使用自定义数据源设置UICollectionView
:
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
let dataSource = DataSource(storage)
let delegate = DelegateFlow()
layout.itemSize = CGSize(width: 90, height: 120)
paymentsHistory = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout)
paymentsHistory.delegate = delegate
paymentsHistory.dataSource = dataSource
paymentsHistory.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
self.view.addSubview(paymentsHistory)
集合视图本身正确显示,但没有单元格出现。
我可以从调试输出看到,
collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
和
collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
永远不会被召唤。那是为什么?
答案 0 :(得分:1)
我的猜测是它被解除引用,因为UICollectionView中的delegate
和datasource
是弱引用。
weak open var delegate: UICollectionViewDelegate?
weak open var dataSource: UICollectionViewDataSource?
一旦你超出了你所处的任何职能的范围,就应该没有。
如果你把它作为你班级的财产,它应该有效。