下面的代码试图创建一个 UICollectionView
在自定义 View 中。自 UICollectionView
不是在 Storyboard 中创建的,这意味着创建自定义 UICollectionViewCells
在 XIB 中。
然而,awakeFromNib
自定义函数从不调用 UICollectionViewCell
,这会导致呈现 UICollectionView
的问题.
如何解决这个问题?
自定义 View .swift:
class CustomView : UIView, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
@IBOutlet weak var collectionView: UICollectionView!
private func doInit() {
if let nibsView = NSBundle.mainBundle().loadNibNamed("CustomCellView", owner: self, options: nil) as? [UIView] {
let nibRoot = nibsView[0]
self.addSubview(nibRoot)
nibRoot.frame = self.bounds
// Register UICollectionViewCell NIB
collectionView.registerNib(UINib(nibName: CustomCellNib, bundle: nil), forCellWithReuseIdentifier: CustomCellID)
}
}
}
CustomCell.swift:
class CustomCell: UICollectionViewCell {
override func awakeFromNib() {
super.awakeFromNib()
doInit(frame)
}
}
最佳答案
将您的代码行更改为
collectionView.register(UINib(nibName: CustomCellNib, bundle: nil), forCellWithReuseIdentifier: CustomCellID)
关于ios - UICollectionViewCellawakeFromNib 从未被调用,即使 registerNib 被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37336833/