我该如何做到这一点?我已经尝试了100种方法,它不断向后d回而不是向后旋转
编辑:我忘了添加我需要这个无限重复
解决方法 您可以在UIVIEw.animate上显示的completionHandler中执行第二个动画let duration = self.TransitionDuration(using: TransitionContext)let firstAnimDuration = 0.5UIVIEw.animate(withDuration: firstAnimDuration,animations: { /* Do here the first animation */}) { (completed) in let secondAnimDuration = 0.5 UIVIEw.animate(withDuration: secondAnimDuration,animations: { /* Do here the second animation */ })}
现在你可能有另一个问题.
如果使用CGAffinetransform旋转视图,并且为每个动画分配一个此类型的新对象到vIEw.transform,您将丢失先前的变换 *** 作
所以,根据这篇文章:How to apply multiple transforms in Swift,你需要连接转换 *** 作
2动画块的示例
这是一个旋转180并在1秒后返回原点的例子:
let vIEw = UIVIEw.init(frame: CGRect.init(origin: self.vIEw.center,size: CGSize.init(wIDth: 100,height: 100)))vIEw.backgroundcolor = UIcolor.redself.vIEw.addSubvIEw(vIEw)var transform = vIEw.transformtransform = transform.rotated(by: 180)UIVIEw.animate(withDuration: 2,animations: { vIEw.transform = transform}) { (completed) in transform = CGAffinetransform.IDentity UIVIEw.animate(withDuration: 2,delay: 1,options: [],animations: { vIEw.transform = transform },completion: nil)}
.repeat动画和.autoreverse的示例
.animate方法使您能够设置一些动画选项.特别是结构UIVIEwAnimationoptions包含:
> .repeat,无限重复你的动画块
> .autoreverse,将您的视图恢复到原始状态
考虑到这一点,你可以这样做:
var transform = vIEw.transform.rotated(by: 180)UIVIEw.animate(withDuration: 2,delay: 0,options: [.repeat,.autoreverse],animations: { self.myVIEw.transform = transform})
但是你需要在两个动画之间有一个延迟,所以你需要这样做:
递归动画示例和1秒的延迟
只需在VIEwController中创建一个方法,为视图设置动画.在最后一个completionHandler中,只需调用该方法来创建一个无限循环.
最后,您需要在vIEwDIDAppear上调用该方法来启动动画.
overrIDe func vIEwDIDAppear(_ animated: Bool) { super.vIEwDIDAppear(animated) self.animation()}func animation() { var transform = vIEw.transform transform = transform.rotated(by: 180) UIVIEw.animate(withDuration: 2,animations: { self.myVIEw.transform = transform }) { bool in transform = CGAffinetransform.IDentity UIVIEw.animate(withDuration: 2,animations: { self.myVIEw.transform = transform },completion: { bool in self.animation() }) }}总结
以上是内存溢出为你收集整理的ios – 如何对两个动画进行排序,延迟时间间隔全部内容,希望文章能够帮你解决ios – 如何对两个动画进行排序,延迟时间间隔所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)