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
如何将 UICollectionViewCell 从一个 UICollectionView 拖到另一个 UICollectionView?