2

ビュー内の複数の UIButton に問題があります。一度に複数のボタンを選択して、ボタンを個別に選択したい (例: ボタン 1、4、5、9 を選択した 10 個のボタン)。

私のヘッダーには、IBOutletCollection のプロパティがあります。

@property (retain, nonatomic) IBOutletCollection(UIButton) NSMutableArray *buttonToStaySelected;

私の実装では、IBAction があります。

-(IBAction)selectedButton:(id)sender{
  for (UIButton *b in self.buttonToStaySelected) {
     if (b.isSelected == 0){
        [b setSelected:YES];
  } else
        [b setSelected:NO];
  }
}

私が抱えている問題は、コレクションに関連付けられているボタンのいずれかを選択すると、それらがすべて選択済みに変わることです。問題がループにある可能性が最も高い(ほぼ確実)ことはわかっていますが、規定しようとしたすべての条件はコードを壊し、状態を「変更」できるボタンはありません。

更新しました

それらを選択可能にし、状態を変更し、複数をチェックするために、これを最終コードとして使用しました。

-(IBAction)selectedButton:(id)sender {
  for (UIButton *b in self.buttonToStaySelected) {
      if (sender == b) {
      [b setSelected:!b.isSelected];
    }
   }
  }

助けてくれてありがとう!

4

1 に答える 1

4

メッセージは、selectButton:タップされたボタンを指定する引数とともに送信されますが、タップされたボタンだけでなく、コレクション内のすべてのボタンにアクションを適用します。

-(IBAction)selectedButton:(id)sender
{
  for (UIButton *b in self.buttonToStaySelected)
  {
     if (sender == b)
     {
        b.isSelected == !b.isSelected
     }
  }
}
于 2012-06-04T21:27:41.243 に答える