我花了我的火鸡日试图建立一个翻转动画类,我已经挣扎了几个星期。
目标是:
反复翻转两个图像,首先快速,然后减速并停止,在动画开始前选择的两个图像中的一个图像上着陆。
现在这两个图像都在容器视图中,在故事板中。我试过用transitionFromView transitionFlipFromTop这个方法,我想可以,但当时我无法让它重复。
我正在阅读视图编程指南,但是很难把它和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)
    }
}

我会继续努力的。任何帮助,想法,或暗示更好的方式去做这件事将是惊人的。
谢谢。

最佳答案

这个翻转动画swift代码看起来稍微好一点:

        let transition = CATransition()
        transition.startProgress = 0;
        transition.endProgress = 1.0;
        transition.type = "flip";
        transition.subtype = "fromRight";
        transition.duration = 0.9;
        transition.repeatCount = 2;
        self.cardView.layer.addAnimation(transition, forKey: " ")

另一个选择是
@IBOutlet weak var cardView: UIView!
var back: UIImageView!
var front: UIImageView!
self.front = UIImageView(image: UIImage(named: "heads.png"))
self.back = UIImageView(image: UIImage(named: "tails.png"))
self.cardView.addSubview(self.back)
UIView.transitionFromView(self.back, toView: self.front, duration: 1, options: UIViewAnimationOptions.TransitionFlipFromRight , completion: nil)

请检查link

07-24 09:49
查看更多