gpt4 book ai didi

iphone - 停止进行中的 CAKeyframeAnimation

转载 作者:行者123 更新时间:2023-12-03 16:05:48 25 4
gpt4 key购买 nike

我使用 View 的 CALayer 上的 CAKeyframeAnimation 来对 UIView 的框架属性进行动画处理,并对“位置”属性进行动画处理。我希望能够在用户点击屏幕时将动画停止在当前状态,但我无法这样做。

我可以通过调用轻松停止动画

[view.layer removeAnimationForKey:kFrameAnimationKey];

问题是动画不会直接更新 View 的框架和图层的位置。如果我查看动画开始时和结束时的位置属性

- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)finished

没有改变。

看来您需要在动画停止时明确执行此操作。但如果动画在某个任意点停止,您就不知道它走了多远。所以问题是如何让动画在播放时更新图层的位置属性,或者如何知道动画停止时已经走了多远。

最佳答案

您可以通过抓取动画 UIView 层的presentationLayer 来实现动画停止,然后在删除动画之前将其框架应用到 UIView。例如:

movingView.frame = [[movingView.layer presentationLayer] frame];
[movingView.layer removeAnimationForKey:@"movementAnimation"];

这似乎可以将 UIView 卡住在您正在寻找的当前动画位置。

关于iphone - 停止进行中的 CAKeyframeAnimation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/537425/

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