Я пытаюсь анимировать преобразование с кнопки «+» на кнопку «X», вращая ее по щелчку.iOS UIButton в навигационной панели исчезает после выполнения анимации трансляции
Все прекрасно работает, когда я использую стандартную кнопку на UIView. Я использую следующий код:
UIView.animateWithDuration(2.0, delay: 0.0, options: .CurveEaseOut, animations: {
let transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
self.navigationPlusButton.transform = transform
}, completion: nil)
Проблема возникает, когда я пытаюсь добиться этого с помощью кнопки в навигационной панели.
Похоже, высота кнопки изменяется на 0 до поворота, и я не знаю, как исправить размер кнопки навигации, так как нет никаких ограничений определений. Примечание раскадровки
и для ограничения
Примечание: Второй подход, использующий CABasicAnimation кнопку повернутый красиво, но вернулся он немедленно исходное состояние после завершения анимации. Я хотел бы остаться «Х», пока не нажму снова.
let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
rotateAnimation.fromValue = 0.0
rotateAnimation.toValue = CGFloat(M_PI_4)
rotateAnimation.duration = 2.0
self.navigationPlusButton.layer.addAnimation(rotateAnimation, forKey: nil)
Как это работает так легко за пределами панели навигации, и это так трудно сделать это на панели навигации? Я не могу найти решение. Пожалуйста, помогите