iphone – 正在暂停CAKeyframeAnimation

iphone – 正在暂停CAKeyframeAnimation,第1张

概述我正在使用视图的CALayer上的CAKeyframeAnimation动画UIView的frame属性,并为“position”属性设置动画.我希望能够在用户点击屏幕时停止当前状态的动画,但我无法这样做. 我可以通过调用轻松地停止动画 [view.layer removeAnimationForKey:kFrameAnimationKey]; 问题是视图的框架和图层的位置都不会直接由动画更新.如 我正在使用视图的CALayer上的CAKeyframeAnimation动画UIVIEw的frame属性,并为“position”属性设置动画.我希望能够在用户点击屏幕时停止当前状态的动画,但我无法这样做.

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

[vIEw.layer removeAnimationForKey:kFrameAnimationKey];

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

- (voID)animationDIDStop:(CAAnimation *)animation finished:(BOol)finished

它没有改变.

在动画停止时,您似乎需要明确地执行此 *** 作.但是如果动画在某个任意点停止,你就不知道它走了多远.所以问题是如何使动画更新图层的位置属性,或者如何知道动画在停止时已经走了多远.

解决方法 您可以通过抓取动画UIVIEw图层的presentationLayer,然后在删除动画之前将其框架应用到UIVIEw来实现动画的暂停.例如:

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

这似乎在你正在寻找的当前动画位置上提供了UIVIEw的冻结.

总结

以上是内存溢出为你收集整理的iphone – 正在暂停CAKeyframeAnimation全部内容,希望文章能够帮你解决iphone – 正在暂停CAKeyframeAnimation所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1025506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存