最後に、この問題を解決しました。これが私がしたことです:
問題は、UICollectionViewCell に userInteractionEnabled = YES があることに気付きました。この値を NO に変更しようとすると、スクロールが機能し始めました。UICollectionViewCells がタッチをインターセプトし、コレクション ビューのスクロールが機能しませんでした。
しかし、付随的な問題がありました。セルに触れると、didSelectItemAtIndexPath メソッドが呼び出されませんでした。
私の解決策は、UITapGestureRecognizer を追加して、セルがタッチされたかどうかを検出し、このメソッドを手動で呼び出すことです。
これを viewDidLoad メソッドに追加します。
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
[self.collectionView addGestureRecognizer:singleTap];
そして、ここに singleTapGestureCaptured メソッドがあります:
- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
{
CGPoint touchPoint=[gesture locationInView:self.collectionView];
NSIndexPath* indexPath = [self.collectionView indexPathForItemAtPoint:touchPoint];
[self collectionView:self.collectionView didSelectItemAtIndexPath:indexPath];
}
これがあなたを助けることを願っています!