Мне нужна помощь, чтобы перевести rightBarButtonItem
в UINavigationBar
. Я проследил за этим , а также нашел похожие вопросы, которые побудили меня добавить кнопку как customView
из UIBarButtonItem
, однако код все еще не работает.
Я создалUIBarButtonItem
и установите UIButton
в качестве пользовательского представления.
let button: UIButton = {
let b = UIButton(type: .system)
b.setTitle("Test", for: .normal)
return b
}()
lazy var barButton = UIBarButtonItem(customView: button)
Этот метод вызывается из viewDidLoad
func configNavBar() {
navigationItem.rightBarButtonItem = barButton
}
Для анимации кнопки панели при возникновении каких-либо действий:
func animateRightBarButton() {
UIView.animate(withDuration: 0.25,
delay: 0,
usingSpringWithDamping: 0.8,
initialSpringVelocity: 1.5,
options: .curveEaseInOut,
animations: {
guard let customView = self.barButton.customView else {return}
var x: CGFloat = customView.transform.tx == 0 ? 100 : 0
customView.transform = CGAffineTransform(scaleX: x, y: 0)
}, completion: nil)
}
Кнопка панели отображается, как и ожидалось, после загрузки представления. Я хочу, чтобы кнопка соскользнула с экрана, но я заметил пару проблем.
Кнопка исчезает из вида без анимации при вызове этой функции. Если I print(x)
(значение x перевода), оно остается на 100.0
и не изменяется обратно на 0
с использованием троичного оператора. Спасибо за любую помощь, чтобы получить эту работу, спасибо.