Анимация не происходит при нажатии viewcontrollers - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь анимировать кнопку редактирования: «пока» контроллеры вида нажаты.Тем не менее, кнопка не анимируется, хотя представления нажимаются правильно.

Вот мой код:

        createAccountButton.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
    UIView.animate(withDuration: 1, delay: 0, usingSpringWithDamping: 0.5, initialSpringVelocity: 1, options: .allowUserInteraction, animations: {
        self.createAccountButton.transform = .identity
        let signUpVC = SignUpViewController()
        //        presentDetail(signUpVC)
        let transition = CATransition()
        transition.duration = 0.5
        transition.type = CATransitionType.push
        transition.subtype = CATransitionSubtype.fromRight
        transition.timingFunction = CAMediaTimingFunction(name:CAMediaTimingFunctionName.easeInEaseOut)
        self.view.window!.layer.add(transition, forKey: kCATransition)
        self.present(signUpVC, animated: false, completion: nil)
    })

Спасибо

1 Ответ

0 голосов
/ 16 октября 2018

Вы должны анимировать кнопку в блоке анимации и представить следующий экран в блоке завершение , который выполняется после окончания анимации.

createAccountButton.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
  UIView.animate(withDuration: 1, delay: 0, usingSpringWithDamping: 0.5, initialSpringVelocity: 1, options: .allowUserInteraction, animations: {
     self.createAccountButton.transform = .identity
  }) { _ in
     let signUpVC = SignUpViewController()
     //        presentDetail(signUpVC)
     let transition = CATransition()
     transition.duration = 0.5
     transition.type = CATransitionType.push
     transition.subtype = CATransitionSubtype.fromRight
     transition.timingFunction = CAMediaTimingFunction(name:CAMediaTimingFunctionName.easeInEaseOut)
     self.view.window!.layer.add(transition, forKey: kCATransition)
     self.present(signUpVC, animated: false, completion: nil)
  }
...