私のプロジェクトアプリケーションにtableViewsとcollectionViewsの両方があります。テーブルとコレクションの両方で、最初にタップしたときに行/セルを選択し、2度目にタップすると選択解除する必要があります。2番目のタップでUICollectionViewセルの選択を解除します。
tableViewを使用して、わかりやすく簡単な解決策hereが見つかりました。これはうまく機能します。
CollectionViewは、まったく別のタイプの獣でした。 tableViewとは異なり、willSelectItemAt
デリゲートメソッドはありません。したがって、2番目のタップが登録される前にアイテムが選択された状態にあるかどうかを確認する方法はありません。 shouldDeselectItemAt
とdidDeselectItemAt
を実装すると、結果が得られません。タップしたときに既に選択されているセルに対してこれらのメソッドが呼び出されることはありません。
もっともらしいsolutionは、各collectionViewセルに対してUIButton
を作成することを示唆していますが、それは本当に複雑なはずですか?
ありがとう、素晴らしいソリューション! 'else'ステートメントについては、' didItelectItemAt() 'メソッドでいくつかのロジックを実行する必要があるため、' selectItem() 'の代わりに' return true'を使用しました。 –