IBOutletCollection UIButtons - изменение выбранного состояния кнопок
У меня проблема с несколькими кнопками UIB в представлении. Мне бы хотелось, чтобы кнопки выбирались индивидуально, с несколькими выбранными одновременно (например, 10 кнопок, с выбранными кнопками 1, 4, 5, 9).
В моем заголовке у меня есть свойство для 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];
}
}
}
Спасибо за помощь!
1 ответ
selectButton:
сообщение отправляется с аргументом, который определяет нажатую кнопку, но действие применяется ко всем кнопкам в коллекции, а не только к нажатой кнопке.
-(IBAction)selectedButton:(id)sender
{
for (UIButton *b in self.buttonToStaySelected)
{
if (sender == b)
{
b.isSelected == !b.isSelected
}
}
}