意外地发现UIView类型的@IBOutlet为零

问题描述

我正尝试使用xib文件在另一个视图内创建一个集合视图,如此处in this article

所述

按照他们提供的代码在其中完成所有操作(或不完成?)

import UIKit

@IBDesignable
class CustomView: UIView {

    @IBOutlet var contentView: UIView!
    @IBOutlet weak var collectionView: UICollectionView!
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        commonInit()
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        commonInit()
    }
    
    private func commonInit() {
        let bundle = Bundle(for: type(of: self))
        bundle.loadNibNamed("CustomView",owner: self,options: nil)
        addSubview(contentView)
        contentView.frame = bounds
        contentView.autoresizingMask = [.flexibleWidth,.flexibleHeight]
        contentView.backgroundColor = .red
        initCollectionView()
    }
    
    private func initCollectionView() {
        let nib = UINib(nibName: "CustomCell",bundle: nil)
        collectionView.register(nib,forCellWithReuseIdentifier: "CustomCell")
        collectionView.dataSource = self
    }
}

extension CustomView: UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView,numberOfItemsInSection section: Int) -> Int {
        return 20
    }
    
    func collectionView(_ collectionView: UICollectionView,cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CustomCell",for: indexPath) as? CustomCell else {
            fatalError("can't dequeue CustomCell")
        }
        cell.label.text = "\(indexPath.item)"
        return cell
    }
}

但在行Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value上收到错误addSubview(contentView)链接已检查并连接。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)