CollectionView セルにコンテンツを表示するために UICollectionView を使用するアプリを作成しています。ピンチ ジェスチャでは、コレクション ビューを再読み込みする必要があります。ピンチジェスチャーに応じてコンテンツの変更を処理できます。ここで、ピンチ ジェスチャの開始時に、コレクション ビューを再読み込みして、特定のインデックスまでスクロールする必要があります。そのために、次のように関数を呼び出しました。
[tempCollectionView reloadData];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(scrollToItem) userInfo:nil repeats:YES];
[OR]
[self performSelector:@selector(scrollToItem) withObject:nil afterDelay:0.0];
- (void) scrollToItem
{
if (m_selectedCellIndex == -1)
{
NSLog(@"cell return");
return;
}
NSIndexPath *iPath = [NSIndexPath indexPathForItem:m_selectedCellIndex inSection:0];
[tempLocalFilesCollectionView scrollToItemAtIndexPath:iPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
LocalFilesCollectionViewCell *cell = (LocalFilesCollectionViewCell *) [m_tempLocalFilesCollectionView cellForItemAtIndexPath: iPath];
if (cell)
{
CGPoint p = [tempCollectionView convertPoint: cell.center fromView: tempCollectionView];
NSLog(@"center: %f, %f, %f, %f", cell.center.x, cell.center.y, p.x, p.y);
}
else
{
NSLog(@"Not found");
}
}
しかし、スクロールは機能しません。「無効なインデックス パスにスクロールしようとしました」というエラーでクラッシュします。tempCollectionView にスクロールできるセルがないことは明らかです。
リロードが完了した後、インデックス パスまでスクロールするにはどうすればよいですか? どんな助けでも素晴らしいでしょう!!