当我打印在MyCell类中声明的IBOutlets时,它们会变成零。
ViewController中的方法
public override func viewDidLoad() {
super.viewDidLoad()
self.seriesCollectionView.register(MyCell.self, forCellWithReuseIdentifier: "MyCell")
}
public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath) as! MyCell
cell.setup()
return cell
}
MyCell类
class MTSeriesViewCell: UICollectionViewCell {
@IBOutlet weak var cellView: UIView!
@IBOutlet weak var cellImageView: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
}
public func setup() {
print(cellView)
}
}
我是否应该在ViewController的viewDidLoad中初始化/注册MyCell类?
答案 0 :(得分:6)
而不是:
self.seriesCollectionView.register(MyCell.self, forCellWithReuseIdentifier: "MyCell")
使用:
self.seriesCollectionView.register(UINib(nibName: "MyCellXibName", bundle: nil), forCellWithReuseIdentifier: "MyCell")
答案 1 :(得分:1)
在自定义单元格的xib中,您需要控制 - 从视图拖动到文件的所有者并将它们连接到IBOutlets。
答案 2 :(得分:0)
如果你正在为你的单元格使用.xib,你必须使用Control-Drag从你的视图中创建一个参考插座,然后连接它们。