快速收缩动画

标签 swift animation

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

我想要的只是一个将 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/

相关文章:

ios - 使用嵌套子查询过滤 Realm

javascript - 更新后 webkit 动画速度极慢

css - 如何设置 CSS 动画的当前帧(或类似帧)?

ios - 将图像数组下载为字节数组并转换为图像

swift - 与协议(protocol)的一致性冲突 - 最佳实践

ios - 如何将 Cordova 项目中使用的插件添加到 iOS 原生项目中

json - 如何在 swift 中从 JSON 获取特定值

ios - 为什么我在收到 UIKeyboardWillShowNotification 后更改其框架的 UIView 会自动设置动画?

css - 背景位置不适用于 CSS 动画和线性渐变

javascript - 延迟 CreateJS 动画时间轴