Как показать пользователю, что он выбрал navigationItem.leftBarButtonItems в Swift?
У меня есть navigationBarItems, и я пытаюсь изменить цвет фона UIButton, когда пользователь нажимает на него.
Вот мой код navigationBarItems:
private func createNavigationBarItems() {
let boldButton = UIButton(type: .custom)
boldButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
boldButton.setTitle("B", for: .normal)
boldButton.setTitleColor(UIColor.systemBlue, for: .normal)
boldButton.tag = TextStyle.bold.rawValue
boldButton.addTarget(self, action: #selector(insertStyle(_:)), for: .touchUpInside)
let boldButtonItem = UIBarButtonItem(customView: boldButton)
let italicButton = UIButton(type: .custom)
italicButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
italicButton.setTitle("I", for: .normal)
italicButton.setTitleColor(UIColor.systemBlue, for: .normal)
italicButton.tag = TextStyle.italic.rawValue
italicButton.addTarget(self, action: #selector(insertStyle(_:)), for: .touchUpInside)
let italicButtonItem = UIBarButtonItem(customView: italicButton)
navigationItem.leftBarButtonItems = [
boldButtonItem,
italicButtonItem]
}
Я вызываю этот метод в viewDidLoad().
Это функция действия кнопки:
@objc func insertStyle(_ sender: UIButton) {
guard let textView = textView else { return }
let style = TextStyle(rawValue: sender.tag)
switch style {
case .bold:
updateText(type: .bold, editor: textView.editor)
case .italic:
updateText(type: .italic, editor: textView.editor)
}
Как изменить цвет фона UIButton, когда пользователь нажимает кнопку, и очищать цвет фона при повторном нажатии?