Swift UIView Animate не работает должным образом - PullRequest
0 голосов
/ 23 января 2020

Анимация скольжения будет запускаться при нажатии кнопки.

    func animation_onClick(action: String) {
          let up = CGAffineTransform(translationX: 0, y: -30)

          myView.transform = CGAffineTransform(translationX: 0, y: 0)

          UIView.animate(withDuration: 0.5, delay: 0.0, options: [], animations: {
              self.myView.transform = up            
          }, completion: nil)
    }

Мой код означает, что когда функция выполняется, позиция myView будет установлена ​​в (0, 0), ссылаясь на ее исходное положение каждый раз, когда оно было установлено на (0, -30).

Но когда я запускаю приложение, я несколько раз нажимаю кнопку, почему-то myView не go возвращает его к исходному состоянию, оно опускается ниже того места, где оно должно быть. Я имею в виду, что он не должен go ниже своего источника.

См. Рисунок ниже.

enter image description here

1 Ответ

0 голосов
/ 23 января 2020

Попробуйте следующее

func animation_onClick(action: String) {
    myView.layer.removeAllAnimations()
    myView.transform = .identity

    UIView.animate(withDuration: 0.5, delay: 0.0, options: [], animations: {
        self.myView.transform = CGAffineTransform(translationX: 0, y: -30)
    }, completion: nil)
}
...