UICollectionViewを含むviewControllerがあり、デリゲートメソッドshouldSelectItemAtIndexPathとdidSelectItemAtIndexPathの両方を実装しています。shouldSelectメソッドは期待どおりに機能しており、選択されたセルごとに呼び出されます。
何度もタップされた場合でも、didSelectメソッドはタップされた最初のセルで呼び出されません。ただし、2番目のセルをタップすると、didSelectメソッドが呼び出されますが、indexPath.itemの値は以前にタップされたセルのものです。
たとえば、collectionViewの最初のセルをタップすると、indexPath.itemの値が0のshouldSelectが呼び出されます。セルを複数回タップしても、DidSelectは呼び出されません。
次に、他のセル、たとえば、collectionViewの4番目のセルをタップすると、shouldSelectが呼び出され、そのindexPath.item値= 3になります。didSelectも呼び出されますが、indexPath.item値= 0(以前に選択されたセル)です。 )。
別のセルを選択し続けると、didSelectは引き続き呼び出されますが、indexPath.item値は常に以前に選択されたアイテムのものです。セルを複数回タップすると、別のセルをタップするまで、didSelectが呼び出されません。
誰か?私は困惑しています。他のすべてのデータソースとデリゲートメソッドは正常に機能しているようです。デリゲートとデータソースはストーリーボードに正しく接続されています。