Я пытаюсь выяснить логику в состояниях кнопок переключения в Swift. Концепция очень проста:Удалено выбранное состояние на кнопке при нажатии другой кнопки (Swift)
- У меня есть три кнопки на экране.
- Когда я нажимаю одну кнопку, она переключается в состояние «выбрано»
- Когда я нажимаю другую кнопку, я хочу, чтобы она переключила выбранную кнопку в состояние «не выбрано» и переключила новую кнопку на «выбран»
у меня есть эта функция, я использую на TouchUpInside для кнопок на экране, но на данный момент это возможно иметь их все «выбрано», который я не хочу:
func highlightTrack(sender:UIButton){
if(!sender.selected){
sender.selected = true
sender.backgroundColor = UIColor.blueColor()
} else {
sender.selected = false
}
}
Я родом из мира Javascript, поэтому я могу просто закончить свою логику, но это e способ обнаружения выбранных на данный момент кнопок на экране и их отключения или это ближе к логике типа «радио»?
Моя проблема в том, что эти кнопки создаются программно в зависимости от определенных условий, поэтому технически я не должен быть создан IBOutlets на лету, как это правильно (IB означает «Interface Builder»?)?
Благодарим за помощь!
Вы должны добавить IBOutlets для каждой кнопки, и когда вызывается метод, проверьте состояние каждого IBOutlet. –
Еще лучше, используйте реферирование коллекции (массив), а затем в 'highlightTrack' вы просто перебираете массив. Если элемент is == 'sender', выделите кнопку еще раз, чтобы удалить выделение. – Paulw11
@MatthewS. моя проблема в том, что эти кнопки создаются программно в зависимости от определенных условий, поэтому технически я не должен быть создан IBOutlets на лету, как это правильно (IB означает «Interface Builder»?)? Или я ошибаюсь, полагая это? – MillerMedia