Повтор / Автореверс анимации в iOS 13.x - PullRequest
2 голосов
/ 24 октября 2019

Раньше в swift вы могли сделать это:

let animator = UIViewPropertyAnimator(duration: 0.25, curve: .easeIn) {
  UIView.setAnimationRepeatCount(Float.infinity)
  UIView.setAnimationRepeatAutoreverses(true)
  let transform = CATransform3DIdentity
  let rotate = CATransform3DRotate(transform, 45, 1, 1, 0)
  self.ex.layer.transform = rotate
}

Однако теперь есть сообщения об устаревании UIView.setAnimationRepeatCount и UIView.setAnimationRepeatAutoreverses. Кто-нибудь знает, чем их заменили? Я все еще могу использовать UIViewPropertyAnimator или мне нужно перейти к чему-то вроде CABasicAnimation?

Сообщения:

'setAnimationRepeatCount' устарела в iOS 13.0:Вместо этого используйте API анимации на основе блоков

'setAnimationRepeatAutoreverses' устарел в iOS 13.0: вместо этого используйте API анимации на основе блоков

1 Ответ

0 голосов
/ 25 октября 2019

Вы можете сделать что-то вроде этого:

UIView.animate(withDuration: 0.25, delay: 0, options: [.autoreverse, .curveEaseIn, .repeat], animations: {
    let transform = CATransform3DIdentity
    let rotate = CATransform3DRotate(transform, 45, 1, 1, 0)
    self.ex.layer.transform = rotate
}, completion: nil)

Для всех возможных вызовов вы можете проверить эту ссылку

Кроме того, если вам действительно нужноUIViewPropertyAnimator, он имеет аналогичный init :

 UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 0.25, delay: 0, options: [.autoreverse, .curveEaseIn, .repeat], animations: {
    let transform = CATransform3DIdentity
    let rotate = CATransform3DRotate(transform, 45, 1, 1, 0)
    self.ex.layer.transform = rotate
})
...