Как заменить UIBarButtonItem классическим UIButton - PullRequest
0 голосов
/ 08 июля 2019
let rightBarBtn = UIBarButtonItem(title: "Light", style: .plain, target: self, action: #selector(rightBarBtnAction))
    self.navigationItem.rightBarButtonItem = rightBarBtn
}

@objc func rightBarBtnAction(sender: UIBarButtonItem) {
    if theme == .dark {
        sender.title = "Dark"
        theme = .light
        Style.themeLight()
    } else {
        sender.title = "Light"
        theme = .dark
        Style.themeDark()
    }
    self.view.backgroundColor = Style.bgColor
    calenderView.changeTheme()
}

Это был фрагмент кода, отвечающий за переключение между двумя темами в моем календаре, и я хотел переключить UIBarButton на UIButton, чтобы изменить его положение на экране.

Это то, что я придумал до сих пор:

    let themeSwitch = UIButton()
    themeSwitch.setTitle("Light", for: .normal)
    themeSwitch.backgroundColor = .darkGray
    themeSwitch.addTarget(self, action: #selector(themeSwitchAction), for: .touchUpInside)
}

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    calenderView.myCollectionView.collectionViewLayout.invalidateLayout()
}

@objc func themeSwitchAction(sender: UIButton) {
    if theme == .dark {
        sender.currentTitle = "Dark"
        theme = .light
        Style.themeLight()
    } else {
        sender.currentTitle = "light"
        theme = .dark
        Style.themeDark()
    }
    self.view.backgroundColor = Style.bgColor
    calenderView.changeTheme()
}

Как вы, вероятно, можете сказать, это не работает. Может кто-нибудь, пожалуйста, покажите мне способ сделать это правильно?

1 Ответ

0 голосов
/ 08 июля 2019

Из того, что я понимаю из вашего объяснения, если вы хотите изменить положение кнопки справа налево или слева направо;нет необходимости использовать **UIButton**.

Вы можете просто назначить кнопку для **self.navigationItem.leftBarButtonItem**

Но в любом случае вы можете добавить **UIButton** внутрь **UIBarButtonItem**, как показано ниже:

Adding UIButton inside UIBarButtonItem



Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...