我已经使用情节提要添加了一个UICollectionView
。UIViewController
这UICollectionView
使用自定义布局: 的子类UICollectionViewFlowLayout
。
当我现在尝试在我的……中插入或删除项目时UICollectionView
……</p>
// allData is an array and the data source of collectionView
[self.allData addObjectsFromArray:dataToAdd];
// collectionViewIndexPaths is an array with one or more UIIndexPath objects
[self.collectionView insertItemsAtIndexPaths:collectionViewIndexPaths];
…应用程序崩溃并抛出此异常:
*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“视图参数为 nil”
我不知道这里指的是哪个视图参数。
当我不使用我的UICollectionViewFlowLayout
子类而是使用 Flow Default Layout 时,一切正常——该项目被插入到集合视图中。
因此这个错误的来源应该很明显:UICollectionViewFlowLayout
子类!
@interface MyFlowLayout : UICollectionViewFlowLayout
@end
@implementation MyFlowLayout
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
self.itemSize = CGSizeMake(95, 160);
self.minimumLineSpacing = 10;
self.minimumInteritemSpacing = 10;
self.sectionInset = UIEdgeInsetsMake(10, 8, 10, 0);
self.headerReferenceSize = CGSizeMake(50, 2);
self.footerReferenceSize = CGSizeMake(50, 2);
}
return self;
}
@end
是的,这就是整个子类。最初我在这里放了很多东西,但是在这两种情况下我都得到了错误:使用这个最小版本的子类和更复杂的版本。
正如我上面提到的,我没有收到此错误的唯一情况是使用默认流布局(现在是子类)时。
这里出了什么问题?