在使用核心图创建饼图时,我为给定代码添加了动画
CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform"];
CATransform3D transform = CATransform3DMakeRotation(DegreesToRadians(360), 0, 0, 1);
rotation.toValue = [NSValue valueWithCATransform3D:transform];
rotation.duration = 10.0f;
[pieChart addAnimation:rotation forKey:@"rotation"];
此代码提供以下错误语义问题:
Implicit declaration of function 'DegreesToRadians' is invalid in C99
我可以做些什么来避免这种情况?
并且运行时它会产生以下错误:
Apple_o Linker id error "_DegreesToRadians", referenced from:
谢谢和问候
维贾雅库马尔
Rhytha的iOS开发人员
答案 0 :(得分:22)
只需定义一个宏,如:
#define DEGREES_RADIANS(angle) ((angle) / 180.0 * M_PI)
改变你的方法,如:
CATransform3D transform = CATransform3DMakeRotation(DEGREES_RADIANS(360), 0, 0, 1);
答案 1 :(得分:0)
#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / M_PI))
将此代码写在要转换的.m文件的顶部
让我知道它是否有效
答案 2 :(得分:0)
对于简单的角度,只需使用弧度:
Transform3D transform = CATransform3DMakeRotation(2 * M_PI, 0, 0, 1);
典型角度的快速列表:
Degrees | Code
--------+---------
360 | 2 * M_PI
180 | M_PI
90 | M_PI_2
45 | M_PI_4