0

プログラムで UICollectionView を作成しました。そのセルには、プログラムで作成された UILabel、UIView、および UIImageView も含まれています。このコレクション ビューを含むビューも、プログラムによって作成されています。データソースとデリゲートを自分自身に設定しました。ラベル、ビュー、画像ビューの userInteractionEnabled プロパティも false に設定されています。コレクション ビューの allowMultipleSelection プロパティも true に設定されます。

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

助けてください!!私はそれについて何時間も検索しましたが、結果はありません!! 回答ありがとうございます。

4

1 に答える 1

0

さて、この関数は両方とも、それに準拠するオブジェクトの UICollectionViewDelegate に従って呼び出されます。この点を確認するよう強く宣伝します:

  1. カスタム collectionView を作成したら、デリゲートプロパティを設定することを忘れないでください。
  2. このメソッドをデリゲート オブジェクトに実装します。-collectionView:didSelectItemAtIndexPath:または-collectionView:didDeselectItemAtIndexPath:、単純なNSLog()出力またはブレークポイントを配置します
  3. allowsSelectionUICollectionView プロパティを設定することを忘れないでくださいYES
  4. 結果に直面する

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

これがお役に立てば幸いです。

于 2016-07-22T22:38:58.823 に答える