UICollectionView 初始化问题

Posted

技术标签:

【中文标题】UICollectionView 初始化问题【英文标题】:UICollectionView Initializing Problems 【发布时间】:2016-10-23 05:21:36 【问题描述】:

我正在尝试将集合视图添加到容器视图(在 uiviewcontroller 中,我已经设置了所有继承集)并且无论出于何种原因,即使我使用 Flowlayout 初始化了我的集合,我仍然收到一条错误消息:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“UICollectionView 必须是 使用非 nil 布局参数初始化 (lldb)

我的代码:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
layout.itemSize = CGSize(width: 90, height: (containerTwo?.frame.height)!)
collectionView = UICollectionView(frame: (self.containerTwo?.frame)!, collectionViewLayout: layout)
collectionView.dataSource = self
collectionView.delegate = self
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")
collectionView.backgroundColor = UIColor.red
self.containerTwo?.addSubview(collectionView)

不知道从这里到哪里去。帮忙?!

【问题讨论】:

UICollectionView: must be initialized with a non-nil layout parameter的可能重复 我的收藏视图代码中没有看到任何重复 你确定你没有在其他地方创建一个额外的 uicollectionview - 也许是故事板? 我可以发布整个代码。我什么都没看到。我没有使用情节提要,我正在以编程方式对我的所有视图进行编码 是的,你能把你的代码上传到 github 上吗? 【参考方案1】:

试试这个代码:

注意:未经测试的代码

您在注册 nibFile 时遇到问题。试试这个..

 var nibName = UINib(nibName: "nibCellName", bundle:nil)
 collectionView.registerNib(nibName, forCellWithReuseIdentifier: " your cell identifier")

这应该可以解决您的问题..因为您可能需要验证您的 collectionView 布局。我猜。

    layout.invalidate()

【讨论】:

以上是关于UICollectionView 初始化问题的主要内容,如果未能解决你的问题,请参考以下文章

从 uiviewcontroller 操作 uicollectionviewcell 内的 uicollectionview

UICollectionView 布局在滚动时表现异常

UICollectionView 作为子视图不会更新约束

如何将 UICollectionViewCell 从一个 UICollectionView 拖到另一个 UICollectionView?

如何在 uitableviewcell 中设置 uicollectionview 的高度?

为啥 UICollectionView didSelect 方法不起作用?