0

コレクションビューの標準的な選択方法と関連するプロトコルを活用したいので、UICollectionViewアイテムに基本的にボタンの動作を与えたいと思っています。

アイテムをスイッチ ボタンにしたいのですが、その方法は簡単に見えますが、実際には機能しません。

最初に実装した

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

そして、私は電話しました

- (void)deselectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated

1 つの個別のデリゲート メソッドから。メソッドは適切に呼び出されているようですが、item は選択プロパティを変更しません。実際、アイテムの「selected」プロパティをチェックすると、「didSelectItemAtIndexPath」デリゲートメソッドから、プロパティが常にNOであることがわかりましたが、それに応じて背景が変更されました...

面白いことに、このプロパティは読み取り専用として定義されていませんが、値を自分で変更することはできません....

誰かがすでに同様のナットを割ったことがありますか? それとも、これはおそらくバグのあるものだと言えますか?

4

1 に答える 1

0

おそらく、セルに _isSelected BOOL を設定します。false に設定されたセルのサブクラスで

次にselectedCellForRowで...

[cell applySelection];

サブクラス化されたセル:

-(void)applySelection{
if(_isSelected){
   _isSelected=false;
   self.setImage (or whatever you want to do, do signify not selected)
}else{
   _isSelected=true;
   //do whatever to signify selection
}
于 2013-03-28T12:27:43.070 に答える