3

以前在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

4

1 回答 1

1

你可以这样做:

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
})
于 2019-10-24T21:14:15.630 回答