iOS 简单转盘动画的实现(非nstime)

//******************旋转动画******************

//产生随机角度

srand((unsigned)time(0));  //不加这句每次产生的随机数不变

random = (rand() % 20) / 10.0;//设置随机角度

if ((int)(random*100)%5 == 0) {

random = random + 0.01;

}

//设置动画

CABasicAnimation *spin = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];

[spin setFromValue:[NSNumber numberWithFloat:M_PI * (0.0+orign)]];

[spin setToValue:[NSNumber numberWithFloat:M_PI * (10.0+random+orign)]];

[spin setDuration:2.5];

[spin setDelegate:self];//设置代理,可以相应animationDidStop:finished:函数,用以弹出提醒框

//速度控制器

[spin setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];//加速

//添加动画

[[_backIm layer] addAnimation:spin forKey:nil];

//锁定结束位置

_backIm.transform = CGAffineTransformMakeRotation(M_PI * (10.0+random+orign));

//锁定fromValue的位置

orign = 10.0+random+orign;

orign = fmodf(orign, 2.0);

无需记录角度问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容