0

プログラムでUICollectionViewを作成しました。そのセルには、プログラムで作成されたUILabel、UIView、およびUIImageViewも含まれています。このコレクションビューを含むビューも、プログラムによって作成されています。私はそのデータソースを設定し、自己に委譲しました。ラベル、ビュー、およびイメージビューのuserInteractionEnabledプロパティもfalseに設定されています。コレクションビューのallowsMultipleSelectionプロパティもtrueに設定されます。didDeselectItemAtIndexPath関数がプログラムで作成されたUICollectionViewで呼び出されていません

問題は、私がセルに触れるたびにdidSelectItemAtIndexPath関数が呼び出されることです。しかしdidDeslectItemAtIndexPath関数は呼び出されません。私は必要に応じてtrue/falseにcell.selectedプロパティを設定しようとしましたが、私の問題を助けません。

助けてください!私はそれについて多くの時間を費やしましたが結果はありませんでした! お返事ありがとうございます。

+0

タップジェスチャーはありますか?ここを見てhttp://stackoverflow.com/questions/16444688/uicollectionview-only-calling-didselectitematindexpath-if-user-double-taps-will –

+0

コメントと答えをありがとう。私は非常に大きなばかげたミスを発見しました。私はdidselect関数でコレクションビューをリロードしていました。このような大失敗の間違いを誰かが何時間も過ごさないことを願っています。 – Rishi

答えて

0

さて、この両方の関数は、それに従うオブジェクトのUICollectionViewDelegateに従って呼び出されます。私は非常にこの点を確認するために宣伝:カスタムcollectionViewを忘れないでください

  1. 作成後

    デリゲートプロパティを設定します。
  2. デリゲートオブジェクトでこのメソッドを実装します。 -collectionView:didSelectItemAtIndexPath:または-collectionView:didDeselectItemAtIndexPath:YES
  3. フェイス結果にUICollectionViewプロパティallowsSelectionを設定することを忘れないでくださいシンプルそこNSLog()出力やブレークポイント
  4. を入れ

重要事項
1.あなたはUICollectionViewを呼び出す場合-selectItemAtIndexPath:animated:scrollPosition:または-deselectItemAtIndexPath:animated:のようなメソッドは、このアクションのいずれかは、が起動されない、または通知が受信されません。あなたが覚えているように、UITableViewClassと同じです
2. UICollectionViewプロパティallowsMultiplySelectionは、コレクションセルの状態を切り替えることができます
3.要素をどこに作成しても問題ありません。それはちょうど正しく設定する必要があります。

これがあなたを助けてくれることを願っています。

関連する問題