2

次の問題で悩んでいます。レイアウトのヘッダーとフッターの参照サイズが値 (40.0 など) に設定されている UICollectionView があります。セルを削除/挿入し、コレクション ビューがヘッダーとフッターが画面上にないような位置にある場合、すべて問題ありません。ただし、同じアクションを実行するときに画面に表示されると、コードが次のエラーでクラッシュします。

2012-12-17 16:05:05.042 BambooV2Demo[37770:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: <_UICollectionViewItemKey: 0x1e04cf70> Type = SV Kind = UICollectionElementKindSectionHeader IndexPath = <NSIndexPath 0x1e04fe90> 2 indexes [0, 0])'

一方、ヘッダーとフッターのサイズを 0.0 に設定すると、すべて問題なく動作します。ヘッダー/フッターのサイズがゼロではなく、画面に表示されている場合のクラッシュの理由について、誰か考えがありますか?

4

2 に答える 2

3

ヘッダーのサイズを設定したときにこの問題が発生していましたが、ヘッダーのビューを指定していませんでした。代わりに、セクション インセットを使用し、ヘッダー サイズをゼロに戻しました。

于 2013-05-17T21:04:13.023 に答える
0

レイアウト サブクラスまたはデリゲートを介して以下のメソッドで YES を返す必要があります。これにより、CollectionView アイテムがレイア​​ウトに再配置されます。

- (BOOL) shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
    return YES;
}
于 2013-02-26T08:31:42.750 に答える