CGAffine转换不同动画块中的属性

时间:2015-07-16 12:27:36

标签: ios swift uiview uiviewanimation cgaffinetransform

我的目标是在动画中转换UIView。问题是水平平移需要使用弹簧/反弹动画进行动画处理,而垂直平移需要在没有它的情况下进行动画处理。

以下代码不起作用,因为第二个转换将取代第一个,但我想说明我想要实现的目标。

是否可以在不直接动画视图框的情况下解决这个问题?

UIView.animateWithDuration(0.5, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.01, options: nil, animations: { () -> Void in
        someView.transform = CGAffineTransformMakeTranslation(-100, 0)
}) { (completed) -> Void in

}

UIView.animateWithDuration(0.5, animations: { () -> Void in
        someView.transform = CGAffineTransformMakeTranslation(0, 100)
})

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是使someView成为另一个应用第二个转换的视图的子项。

   UIView.animateWithDuration(1, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.01, options: nil, animations: { () -> Void in
        self.someView.transform = CGAffineTransformMakeTranslation(-100, 0)
        }) { (completed) -> Void in


    }
    let someOtherView = UIView(frame: self.view.frame);
    self.view.addSubview(someOtherView);
    someOtherView.addSubview(someView);
    UIView.animateWithDuration(1, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.01, options: nil, animations: { () -> Void in
        someOtherView.transform = CGAffineTransformMakeTranslation(0, 100)
        }) { (completed) -> Void in

    }