迅捷收缩动画

时间:2016-02-07 07:47:17

标签: swift animation

我认为这应该是一个简单的问题,但我还没有找到解决方案。

我想要的只是一个动画,可以将视图从原始大小缩小到较小的大小。

我试过这个:

UIView.animateWithDuration(10.0, animations: {
    self.view.frame = CGRectInset(frame, 0.2 * frame.width, 0.2 * frame.height)
})

这确实缩小了视野,但它在缩小视图之前突然将其摧毁,然后仅将其缩小回原始大小。

我也试过这个:

UIView.animateWithDuration(10.0, animations: {
    self.view.transform = CGAffineTransformMakeScale(0.01, 0.01)
})

但是这与第一个选项有同样的问题,虽然它在将它吹散之后会缩小到比原始尺寸更小的尺寸。

如何创建将视图从原始大小缩小到较小尺寸的动画?

1 个答案:

答案 0 :(得分:1)

按照Leo Dabus的建议调查CABasicAnimation后,我能够解决我的问题。下面是一些简单的代码,可以将视图(存储在变量“view”中)从原始大小缩小到较小的大小(小100倍):

let animation = CABasicAnimation(keyPath: "transform")
var tr = CATransform3DIdentity
tr = CATransform3DScale(tr, 0.01, 0.01, 1);
animation.toValue = NSValue(CATransform3D: tr)
view.layer.addAnimation(animation, forKey: "transform")