//开始动画执行的方法
-(void) StartAction
{
float orign=2;
srand((unsigned)time(0)); //不加这句每次产生的随机数不变
orign=(rand() % 20) / 10.0 //随机数字0到2 旋转的view可以根据该值来旋转角度
//设置动画
CABasicAnimation *spin = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
[spin setFromValue:[NSNumber numberWithFloat:M_PI * (0.0+orign)]];//给动画设置开始值
[spin setToValue:[NSNumber numberWithFloat:M_PI * (8.0+orign)]];//给动画设置结束值
[spin setDuration:3];//旋转秒数
//设置下面两个属性可以旋转后位置保持不变
spin.removedOnCompletion = NO;
spin.fillMode=kCAFillModeForwards;
[spin setDelegate:self];//设置代理,可以相应animationDidStop:finished:函数,用以计算结果
//速度控制器
[spin setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];
//添加动画
//view需要自己新建,任意view都可以旋转
[[view layer] addAnimation:spin forKey:@"Rotation"];
//锁定结束位置
view.transform = CGAffineTransformMakeRotation(M_PI * (8.0+orign));
}
//动画结束会调用的方法
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
NSLog(@"orign的值为%f",orign);
}