core animation使用旋转角度,摇摆效果

今天看某位同学问时钟效果怎么做,我首先想到的就是view的属性transform里面有旋转角度的方法,当然还有其他的方法,只是我感觉这个最简单(尴尬)。

有两种方式,一个是定时器控制动画,一个是利用core animation的重复动画属性;

定时器

这个不推荐使用,就是利用UIView的封装动画,在以定时器来重复运行动画代码,上代码:
- (void)animation {
    
    [UIView animateWithDuration:1 animations:^{
        _animationView.transform = CGAffineTransformMakeRotation(M_PI * 1 / 4);
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:1 animations:^{
            _animationView.transform = CGAffineTransformMakeRotation(-M_PI * 1 / 4);
        }];
    }];
}

CABasicAnimation

这个使用方法、代码简单

- (void)coreAnimationType {
    
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    animation.fromValue = [NSNumber numberWithFloat:-M_PI / 4];
    animation.toValue = [NSNumber numberWithFloat:M_PI / 4];
    
    animation.autoreverses = YES; //设置YES,代表动画每次重复执行的效果和上一次的相反
    animation.duration = 1; //一次动画的完成时间
    animation.repeatCount = NSNotFound; //动画播放次数 NSNotFound是无限个循环
    
    [_animationView.layer addAnimation:animation forKey:@"animationTransform"];
}

注意:弧度的旋转利用“transform.rotation”来重建BasicAnimation


还有其他的方式来实现,比如阻尼动画


源码地址:http://download.csdn.net/detail/pianzhidenanren/9587840

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值