私のアプリにはとがUICollectionView
ありUITableView
ます。私はナビゲーションにテレビを使用し、詳細なプレゼンテーションに履歴書を使用しています。TVとCVの幅は、ユーザーが変更できます(パンごと、フレキシブルのようにUISplitViewController
)。
ユーザーがテレビでアイテムを選択すると、アプリは対応する詳細アイテムでCVを更新します。私が使う
[myCV reloadData];
CVを更新するため。これは、CVが表示されている場合に非常にうまく機能します。
ユーザーは、ナビゲーションTVを最大(全画面幅)にズームできます。そのために、CV幅をゼロに設定しました。CVが表示されていない場合、ユーザーは別のアイテムを選択し(-> cv reloadData)、ユーザーがコンテンツCVを再度開くと、次のエラーが発生します。
キャッチされなかった例外「NSInternalInconsistencyException」が原因でアプリを終了しています。理由:「コレクションビューにセクションが1つしかない場合に、セクション2より前のアイテム数をリクエストしてください」
これまでのところ理解できたように、CVは、reloadData中に表示されていない場合(幅がゼロであるか、画面外にあるか、別のビューによって非表示になっているため)、適切に更新されません。CVの幅を0より大きい値に再度設定すると、エラーが発生します。CVは、dataDelegateによって提供される新しいcellItemsではなく、古いcellItemsを処理しているようです。
この状況をどのように修正できるか考えていますか?