【发布时间】:2012-10-28 16:01:23
【问题描述】:
我是 UICollectionView 的新手,我正在学习在网上找到的教程,但我遇到了一个我无法弄清楚的错误。这里有一点上下文。
在调试器中,我可以看到正在发生以下情况:
-
numberOfSectionsInCollectionView: 被调用,我返回 1 -
collectionView:numberOfItemsInSection:被调用,我返回模型的大小 (20) -
collectionView:layout:sizeForItemAtIndexPath:为模型中的每个项目调用一次 -
collectionView:layout:insetForSectionAtIndex:被调用 -
collectionView:cellForItemAtIndexPath:被调用并在此行崩溃...UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];
出现此错误...
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'UICollectionView must be initialized with a non-nil layout parameter'
当我在该行暂停执行并检查控制台时,似乎有一个布局......
(lldb) po collectionView.collectionViewLayout
(UICollectionViewLayout *) $4 = 0x07180fd0 <UICollectionViewFlowLayout: 0x7180fd0>
UICollectionView 是故事板中唯一一个场景的一部分。在 viewController.m 中没有以任何方式创建的其他 UICollectionViews。
有人有什么想法吗?
【问题讨论】:
-
当您使用 alloc/init 或 new 创建新的集合视图而不是在初始化时添加布局对象时会出现该错误。您是否在任何地方制作新的收藏视图?
-
@jrturton 我不知道。 UICollectionView 是故事板中唯一一个场景的一部分。在 viewController.m 中没有以任何方式创建的 UICollectionViews。但话虽如此,而且作为集合视图的新手,我不确定布局在哪里与集合视图相关联。
标签: objective-c uicollectionview