360度旋转动画只是使用Core Animation的几行代码.
CABasicAnimation *rotate =
[CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotate.byValue = @(M_PI*2); // Change to - angle for counter clockwise rotation
rotate.duration = 30.0;
[yourButton.layer addAnimation:rotate
forKey:@"myRotationAnimation"];
Run Code Online (Sandbox Code Playgroud)
通过使用该byValue属性,您可以对之前的任何旋转进行360度的相对旋转(与显式指定from和to值相比).这意味着上面的代码将按钮旋转360度,即使它已经旋转.显式指定结束变换的所有答案都假定按钮尚未旋转.
上面的例子尽可能地小到你所要求的("旋转360度,持续时间30秒").如果您想要更多控制,可以选择通过指定计时功能使动画开始和/或缓慢停止
rotate.timingFunction =
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
Run Code Online (Sandbox Code Playgroud)
如果您尚未添加QuarzCore.framework到项目中,则需要执行此操作.也#import <QuartzCore/QuartzCore.h>位于源文件的顶部.
| 归档时间: |
|
| 查看次数: |
4623 次 |
| 最近记录: |