gpt4 book ai didi

iPhone/iPad Spinner 保持动画效果

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:29 26 4
gpt4 key购买 nike

我是核心动画的新手我基于之前的帖子:spin image clockwise/anticlockwise on touch

可能是一个基本问题,但我只想让圆圈旋转一定距离然后停下来。当动画结束时,它会恢复到原来的位置。

如何让项目在动画结束时保持原样?


我真正想要的是响应用户滑动的自由 float 轮。当用户在滚轮上向左滑动时,滚轮会向左旋转。根据滑动的速度,轮子旋转得更快,然后开始减速。如果有人能就此给出一些提示或指示,我将不胜感激。 alt text

最佳答案

这是与 Core Animation 混淆的一个常见点。 CAAnimation 实际上不会更改层的支持“模型”属性。它只是改变图层对用户的显示方式。所以你的 toValue 永远不会在你的层上设置,你需要自己做。您可以在启动动画之前或之后立即执行此操作。您的新值将被设置,但在动画结束之前用户不会看到它。一个人为的例子:

CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform"];
rotate.fromValue = [NSValue valueWithCATransform3D:myLayer.transform];
rotate.toValue = [NSValue valueWithCATransform3D:CATransform3DRotate(myLayer.transform, M_PI, 0.f, 0.f, 1.f)];
rotate.duration = .5f;

myLayer.transform = CATransform3DRotate(myLayer.transform, M_PI, 0.f, 0.f, 1.f);
[myLayer addAnimation:rotate forKey:@"transform"];

两个重要的部分是在层上设置属性并使用属性名称作为 addAnimation:forKey: 中的键。不要担心隐式动画。在内部,CALayer 将其所有动画保存在以属性名称为键的字典中,当您添加新动画时,它会取消并替换指定键/属性的任何现有动画。

此外,我无法判断您是否需要有关滑动手势的帮助,但如果您还没有,则应该查看 UIPanGestureRecognizer。它提供了一个方便的 velocityInView: 方法,该方法将为您提供平移方向的二维矢量,以每秒点数表示。我有一些 gesture recognizer sample code up on github这可能会有所帮助。

关于iPhone/iPad Spinner 保持动画效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4605649/

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