1

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' が原因でアプリを終了しています。理由: 'view argument is 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

はい、それがサブクラス全体です。もともと私はここにたくさんのものを入れましたが、両方のケースでエラーが発生しました: サブクラスのこの最小バージョンとより複雑なバージョンで。

上で述べたように、このエラーが発生しない唯一のケースは、デフォルトのフロー レイアウト (現在はサブクラス) を使用している場合です。

ここで何がうまくいかないのですか?

4

0 に答える 0