我认为这应该是一个简单的问题,但我还没有找到解决方案。
我想要的只是一个将 View 从原始尺寸缩小到更小的尺寸的动画。
我已经尝试过这个:
UIView.animateWithDuration(10.0, animations: {
self.view.frame = CGRectInset(frame, 0.2 * frame.width, 0.2 * frame.height)
})
这确实缩小了 View ,但它在缩小之前突然将其放大,然后仅将其缩小回原始大小。
我也尝试过这个:
UIView.animateWithDuration(10.0, animations: {
self.view.transform = CGAffineTransformMakeScale(0.01, 0.01)
})
但这与第一个选项有同样的问题,尽管它在放大后确实将其缩小到比原始尺寸更小的尺寸。
如何创建将 View 从原始尺寸缩小到更小的尺寸的动画?
最佳答案
按照 Leo Dabus 的建议研究 CABasicAnimation 后,我能够解决我的问题。下面是一些简单的代码,可将 View (存储在变量“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")
关于快速收缩动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35251047/