2017-06-12 13 views
0

zアクセスに沿った2つの画像ビューの位置の切り替えをアニメーション化しようとしています。 2つのimageViewsは画面のtoにある2です これまでは位置と回転にCAAnimationGroupを使用しようとしましたが、画像の1つしか表示されず、位置と回転がオフになっているようです。これは、コードの外観です。2の位置の切り替えをアニメーションします。imageViews

@IBOutlet weak var meMatchImageView: UIImageView! 
    @IBOutlet weak var theyMatchImageView: UIImageView! 

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(true) 

    let groupAnimation = CAAnimationGroup() 
    groupAnimation.beginTime = 0.0 
    groupAnimation.duration = 1.5 
    groupAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut 
) 
    groupAnimation.delegate = self 


    let rotationAnimation = CAKeyframeAnimation(keyPath: "transform.rotation") 
    rotationAnimation.values = [0, 0.14, 0] 
    rotationAnimation.keyTimes = [0, 0.5, 0] 

    let positionZAnimation = CABasicAnimation(keyPath: "position.z") 
    positionZAnimation.fromValue = -1 
    positionZAnimation.toValue = 1 

    let point0 = NSValue(cgPoint: CGPoint(x: 0, y: 0)) 
    let point1 = NSValue(cgPoint: CGPoint(x: 110, y: -20)) 


    let positionAnimation = CAKeyframeAnimation(keyPath: "position") 
    positionAnimation.values = [point0, point1, point0] 
    positionAnimation.keyTimes = [0, 0.5, 0] 

    groupAnimation.animations = [rotationAnimation, positionAnimation, positionZAnimation] 

    meMatchImageView.layer.add(groupAnimation, forKey: "switch") 
    theyMatchImageView.layer.add(groupAnimation, forKey: "switch") 
    } 

ご協力いただければ幸いです!

答えて

0

コードに少なくとも2つの問題がありました。

まず第一に、あなたはできるだけ早くアニメーション開始など、2 ImageViewに(positionrotationposition.zについて)同じアニメーションを適用している、彼らは完全にしたプロセス全体でこのように全く同じアニメーションを実行しますスタック。

次に、keyTimes属性を間違って使用しています。元のデザインは[0, 0.5, 1]のようです。

関連する問題