アイテム(indexPath.item)のインデックスをUICollectionViewに覚えようとしています。後で、ビューが置換されてから復元された後、その記憶されたアイテムにスクロールします。その項目の後にindexPathを再計算すると、indexPathUICollectionViewアイテムへのスクロール
indexPath is: <NSIndexPath 0x1d87b380> 2 indexes [0, 32]
indexPath.item is: 32
、およびindexPath.itemは、次のとおりです:
アイテム、indexPathを記憶し、indexPath.itemは
indexPath is: <NSIndexPath 0x1d8877b0> 2 indexes [0, 32]
item is: 32
私がしよう使用して記憶した場所にスクロールする:
NSIndexPath *iPath = [NSIndexPath indexPathForItem:i inSection:0];
[self collectionView scrollToItemAtIndexPath:iPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
を私はエラーが表示されます。
attempt to scroll to invalid index path
エラーメッセージに表示しようとしているインデックスパスを出力しますか?そうであれば、 '[section、row]'としましょう。 'NSLog'' [self.collectionView numberOfItemsInSection:section]; 'を試してみて – micantox
マイマントキシンありがとう。 numberofItemsInSectionを印刷すると、スクロールに使用されたビューが古くなっていたことが明らかになりました。ビューを更新した後にscrollToItemAtIndexPathを使用したとき、それは機能しました! – kzia
あなたはドットを置くことを忘れましたか?すなわち[self.collectionView scroll ...]ではなく、[self collectionView scroll ...](selfとcollectionViewの間の点に注意してください)?エラーメッセージにこの問題が正確に記載されているように見える – igrek