简单的旋转动画和贝塞尔半圆动画— DDGBannerScrollView

简单的旋转动画和贝塞尔半圆动画

!

简单的旋转动画和贝塞尔半圆动画(比较基础和简单,直接上代码)
/**
 添加旋转动画

 @param imageView 旋转的目标图片
 @param duration 旋转持续时间
 @param clockwise 旋转的方向(正向还是逆向)
 */
- (void)startrRotationImageView:(UIImageView *)imageView duration:(CGFloat)duration clockwise:(BOOL)clockwise {
    CABasicAnimation* rotationAnimation;
    //动画的方式,绕着z轴
    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    //旋转的弧度
    rotationAnimation.toValue = [NSNumber numberWithFloat: clockwise ? M_PI * 2.0 : -M_PI * 2.0 ];
    //动画持续的时间
    rotationAnimation.duration = duration;
    //动画角度值是否累加(默认为NO)
    rotationAnimation.cumulative = NO;
    //重复次数
    rotationAnimation.repeatCount = 1;
    //动画添加到layer上
    [imageView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}

/**
 沿着UIBezierPath运动

 @param imageView 目标b图片
 @param duration 动画持续时间
 @param controlPoint 控制点
 @param clockwise 旋转方向(正向还是逆向)
 */
- (void)startrRotationImageView:(UIImageView *)imageView duration:(CGFloat)duration controlPoint:(CGPoint)controlPoint clockwise:(BOOL)clockwise {
    CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
    //设置动画属性,因为是沿着贝塞尔曲线动,所以要设置为position
    animation.keyPath = @"position";
    //设置动画时间
    animation.duration = duration;
    // 告诉在动画结束的时候不要移除
    animation.removedOnCompletion = YES;
    // 始终保持最新的效果
    //animation.fillMode = kCAFillModeForwards;
    //贝塞尔曲线
    UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:controlPoint radius:((_dotMargin + _dotNomalSize.width ) /2.0) startAngle: clockwise ? M_PI : 0 endAngle: clockwise ? 0 : M_PI clockwise: clockwise];
    // 设置贝塞尔曲线路径
    animation.path = circlePath.CGPath;
    // 将动画对象添加到视图的layer上
    [imageView.layer addAnimation:animation forKey:@"position"];
}

复制代码

写在最后

以上内容只是DDGBannerScrollView 只是其中一项功能,更多功能可参照DDGBannerScrollView库

奉上github地址:DDGBannerScrollView

掘金地址:DDGBannerScrollView

简书地址:DDGBannerScrollView

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值