UIButton переходит к начальной точке анимации при изменении названия

Я нажимаю кнопку для перемещения на некоторое расстояние при нажатии. После того, как он путешествует на таком расстоянии, он должен изменить свое название и остаться в этом положении. Однако, когда анимация завершена, она возвращается к начальной точке и изменяет ее название. Когда тот же код запускается без изменения кнопки, это заголовок, он отлично работает. Так что кажется, что

self.button.setTitle("hehehe", forState: UIControlState.Normal) 

вызывает проблему. Это код:

 //when button pressed UIView.animateWithDuration(1, delay: 0, options: .CurveLinear, animations: { self.button.center.y -= 50 }) { _ in self.button.setTitle("hehehe", forState: UIControlState.Normal) } 

Вместо этого вы захотите сделать анимацию с использованием ограничений. Сначала настройте трейлинг (например, зависит от того, как вы хотите оживить):

введите описание изображения здесь

Я назвал мой мой Констеинт :

введите описание изображения здесь

Когда у вас есть эти два IBOutlets:

  @IBOutlet weak var myButton: UIButton! @IBOutlet weak var myConstraint: NSLayoutConstraint! 

Вы можете сделать анимацию и изменить текст так (я поместил этот код в действие кнопки):

 // Animate UIView.animateWithDuration(1, delay: 0, options: .CurveLinear, animations: { self.myConstraint.constant = // the new "length" of the constraint, just test different numbers to understand it self.view.setNeedsLayout() self.view.layoutIfNeeded() }) { _ in self.myButton.setTitle("hehehe", forState: UIControlState.Normal) } 

Вариант 1, отключите автоотключение этой кнопки. В viewDidLoad добавьте, и он будет работать

 self.button.setTranslatesAutoresizingMaskIntoConstraints(true) 

Вариант 2 , анимированные ограничения, как сказал Эрик

  • Добавление представления в блок завершения UIView.animateWithDuration
  • Анимация просмотра и выключения экрана в iOS
  • как сделать флип-анимацию в ios в представлениях
  • Анимация UIView задерживается
  • Анимация таймера в UILabel
  • Любой более простой способ укладки анимации?
  • Переход UIView - отражение двух подзонов
  • Анимация коробки, нарисованной в drawRect через CGMutablePathRef
  • Как повторить определенное время анимации UIView
  • removeFromSuperview crash, если не использовать UIViewAnimation
  • UIView анимация iOS, Bizzarre
  • Давайте будем гением компьютера.