#ios #swift #xcode #uibutton #tvos
#iOS #swift #xcode #uibutton #tvos
Вопрос:
ПРИМЕЧАНИЕ: Другие задавали аналогичный вопрос, и ни один из предоставленных ответов не решил мою проблему.
Вот мой код:
@IBOutlet var testButton:UIButton!
override func viewDidLoad() {
self.testButton.setImage(UIImage(named: "icn_checkbox_")?.imageWithColor(color: CMStyle.darkBlueColor), for: .normal)
self.testButton.setImage(UIImage(named: "icn_checked")?.imageWithColor(color: CMStyle.darkBlueColor), for: .selected)
}
@IBAction func testButtonAction(_ sender: Any) {
print("INSIDE testButtonAction")
self.testButton.isSelected = !self.testButton.isSelected
print("self.testButton.isSelected: ",self.testButton.isSelected)
}
Это кнопка:
.
Это характеристики кнопки:
.
Это icn_checkbox_ изображение, используемое для .normal
состояния:
Это icn_checked изображение, используемое для .selected
состояния:
Выполняется код внутри testButtonAction
. Поэтому я действительно не понимаю, почему изображение не изменится (почему кнопка не становится отмеченной).
Комментарии:
1. Нет, оно зарегистрировано как необязательное
Ответ №1:
Вы можете использовать это:
@IBOutlet var testButton: UIButton!
override func viewDidLoad() {
self.testButton.setImage(UIImage(named: "icn_checkbox_")?.imageWithColor(color: CMStyle.darkBlueColor), for: .normal)
}
@IBAction func testButtonAction(_ sender: Any) {
print("INSIDE testButtonAction")
self.testButton.isSelected = !self.testButton.isSelected
if self.testButton.isSelected {
self.testButton.setImage(UIImage(named: "icn_checked")?.imageWithColor(color: CMStyle.darkBlueColor), for: .normal)
} else {
self.testButton.setImage(UIImage(named: "icn_checkbox_")?.imageWithColor(color: CMStyle.darkBlueColor), for: .normal)
}
}