gpt4 book ai didi

swift - 当 UIViewPropertyAnimator 执行动画过程时如何增加值?

转载 作者:行者123 更新时间:2023-11-30 12:06:17 25 4
gpt4 key购买 nike

当 UIViewPropertyAnimator 执行动画过程时如何增加值?当我将对象设置为运动时,我想在它落在屏幕上时增加它的值,但我不确定如何将其与我的动画器链接。有什么建议么?这是我启动的方式

let toTravel = CGFloat(blockSize * newInstance.distanceToTravel()) //checks how far it needs to go.
let frame = CGRect(x: x, y: startY, width: width, height: height)
super.init(frame: frame)
backgroundColor = UIColor.clear
addSubBlocksToView(grid: grid, blockSize: blockSize)
animator = UIViewPropertyAnimator(duration: 10.0, curve: .linear) { [unowned self] in
self.center.y += toTravel // need to calculate CODE this it is a static right now
}

正如您所见,走完我计算的距离需要 10 秒。我想用计数器跟踪它经过的每几个像素(30)。

最佳答案

设置CADisplayLink当你开始动画时。在动画过程中,您可以检查当前位置(由于它是线性动画,您可以通过 initialPosition + time/10 * distance 轻松完成此操作)。动画完成后,您可以使显示链接失效。显示链接为您提供每个帧的回调,您可以使用它来更新屏幕计数器。

或者,您可以考虑使用 CADisplayLink 来驱动整个动画(并使用由您自己的代码驱动的自定义动画曲线。)

关于swift - 当 UIViewPropertyAnimator 执行动画过程时如何增加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46638057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com