swift - 如何在swift中按PERCENTAGE触发动画?

标签 swift

好吧,我正在尝试在 ScrollView 滚动时增量触发动画。为此,我在此处获取了此链接并将其转换为 swift - http://www.oliverfoggin.com/controlling-animations-with-a-uiscrollview/

给我 ScrollView 的百分比偏移x。这一切都很棒。

问题是我对 swift 相当陌生,不知道如何将其与我现有的动画联系起来,这是一个变换/移动而不是改变颜色。

这是我的动画 -

self.borderlines.transform = CATransform3DMakeScale(CGFloat(0.01), CGFloat(1.0), 1)
self.activeBorder.layer.opacity = 1

CATransaction.begin()
self.activeBorder.layer.transform = CATransform3DMakeScale(CGFloat(0.03), CGFloat(1.0), 1)
let anim2 = CABasicAnimation(keyPath: "transform")
let fromTransform = CATransform3DMakeScale(CGFloat(0.01), CGFloat(1.0), 1)
let toTransform = CATransform3DMakeScale(CGFloat(1.0), CGFloat(1.0), 1)
anim2.fromValue = NSValue(CATransform3D: fromTransform)
anim2.toValue = NSValue(CATransform3D: toTransform)
anim2.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
anim2.fillMode = kCAFillModeForwards
anim2.removedOnCompletion = false
self.activeBorder.layer.addAnimation(anim2, forKey: "_activeBorder")

CATransaction.commit()

然后我还有另一个移动动画。由于这些是在触摸时调用的,因此 1 个静态事件。

从我所看到的教程中的人重新计算/触发他的动画每次滚动,然后按百分比改变背景颜色。我不知道如何将其应用于另一种类型的动画 - 他提到了关键帧,但我不知道那些是什么。

怎样才能达到这样的效果呢?我需要在这里改变什么?

最佳答案

通过将其图层的速度设置为零并操纵其timeOffset作为对滚动的响应来研究“卡住”动画。

关于swift - 如何在swift中按PERCENTAGE触发动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38397222/

相关文章:

ios - 在 subview Controller 之间切换

ios - webView 加载时的进度条

swift - 为什么 DispatchSemaphore.wait() 会阻止这个完成处理程序?

ios - Protractor - 如何检查对象是否包含在另一个对象中?

json - 当类型正确时,可解码类型上的 typeMismatch

ios - 连续绘图不会发生 UITouch 的 touchMoved

swift - 如何使用按钮启用蓝牙 OSX

ios - 通过 View Controller 传递用户数据

ios - 加载后是否可以更改 UITabBarController 文本颜色?

ios - 为什么当我删除 TableView 中的一行时它会删除多行?