Как показать пользователю, что он выбрал 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, когда пользователь нажимает кнопку, и очищать цвет фона при повторном нажатии?

0 ответов

Другие вопросы по тегам