【发布时间】:2015-11-07 15:59:03
【问题描述】:
我正在努力构建一个我已经苦苦挣扎了好几个星期的翻转动画课程。
目标是这样的:
反复翻转两张图片,一开始很快,然后减速并停止,落在动画开始前选择的两张图片中的一张上。
现在两个图像都在容器视图中,在故事板中。我试过使用transitionFromView transitionFlipFromTop,我认为这可行,但当时我无法让它重复。
我正在阅读 View Programming Guide,但是很难将它之间的点连接起来,而且 swift。一般来说,编程新手并没有帮助。
这就是我所在的位置:我现在使用CATransform 将图像从零高度缩放到全高。我在想,如果我能以某种方式链接两个动画,第一个显示第一个图像放大,然后回到零,然后动画第二个图像做同样的事情,那应该给我第一部分。然后,如果我能以某种方式让这两个动画重复,一开始很快,然后减速并停止。
看来我需要知道如何嵌套多个动画,然后才能将动画曲线应用于嵌套动画。
我计划通过使用其中两个嵌套动画来解决有关降落在特定图像上的部分,其中一个具有奇数次翻转,另一个具有偶数次翻转。根据所需的最终图像,调用适当的动画。
现在,我当前的代码能够将图像从零重复缩放到完整,一定次数:
import UIKit
import QuartzCore
let FlipAnimatorStartTransform:CATransform3D = {
let rotationDegrees: CGFloat = -15.0
let rotationRadians: CGFloat = rotationDegrees * (CGFloat(M_PI)/180.0)
let offset = CGPointMake(-20, -20)
var startTransform = CATransform3DIdentity
startTransform = CATransform3DScale(CATransform3DMakeRotation(0, 0, 0, 0),
1, 0, 1);
return startTransform
}()
class FlipAnimator {
class func animate(view: UIView) {
let viewOne = view
let viewTwo = view
viewOne.layer.transform = FlipAnimatorStartTransform
viewTwo.layer.transform = FlipAnimatorStartTransform
UIView.animateWithDuration(0.5, delay: 0, options: .Repeat, {
UIView.setAnimationRepeatCount(7)
viewOne.layer.transform = CATransform3DIdentity
},nil)
}
}
我会继续努力。任何关于更好的方法的帮助、想法或提示都会很棒。
谢谢。
【问题讨论】: