У меня есть UIButton
, для которого я хочу переключить заголовок и цвет, когда я его нажимаю. Кнопка должна иметь три состояния: ежедневно, ежемесячно и ежегодно.Переключение между тремя состояниями с UIButton
Сейчас у меня есть это решение, которое не кажется, что элегантный:
if sender.currentTitle == "Daily" {
sender.setTitle("Monthly", for: .normal)
sender.setTitleColor(UIColor(hex: "FB967F"), for: .normal)
} else if sender.currentTitle == "Monthly" {
sender.setTitle("Yearly", for: .normal)
sender.setTitleColor(UIColor(hex: "A395CE"), for: .normal)
} else if sender.currentTitle == "Yearly" {
sender.setTitle("Daily", for: .normal)
sender.setTitleColor(UIColor(hex: "75CFF8"), for: .normal)
}
есть более удобный способ сделать это в Swift?
Вы превратили 10 строк кода в 40. Это более читаемо? :) – Grimxn
lol. все о абстракции, вы можете выбрать создание массивов из двух параметров и просто использовать rawvalue из enum для получения результатов, что уменьшит его до половины Я просто написал его полностью, чтобы дать более четкое представление о том, что продолжается. Подумайте о коде контроллера вида - всего 2 строки. ;), а также способность абстрагироваться и инкапсулировать реализацию всего состояния. – vj9