//1.图片抖动
//使用帧动画 设置旋转 路径
CAKeyframeAnimation *rotationAnii = [CAKeyframeAnimation animation];
rotationAni.keyPath=@"transform.rotation";
//计算好旋转的弧度
CGFloat angle=M_PI_*0.3;
//设置旋转路径
rotationAni.values=@[@(-angle),@(angle),@(-angle)];
//设置动画执行次数
rotationAni.repeatCount=5;
//给图片添加动画
[self.imgIcon.layer addAnimation:rotationAni forkey:@"shake"];
//移除动画
[self.imgIcon.layer removeAnimationForKey:@"shake"];
//2.入场动画(CATransition)
CATransition *annimation = [CATransition animation];
//设置转场动画类型
//fade ,交叉淡化过度
//moveIn,新视图移到旧视图的上面
//push,新视图把久视图推出去
//reveal,将旧视图移开,显示下面的新视图
//pageCurl 向上翻一页
//pageUnCurl 向下翻一页
//rippleEffect 滴水效果
//suckEffect 收缩效果,如一块布被抽走
//cube 立体效果
//oglFlip 上下左右翻转效果
//rotate 旋转效果
//cameraIrisHollowClose 相机镜头关上效果(不支持过渡方向)
//cameraIrisHollowOpen 相机打开效果(不支持过渡方向)
annimation.type=@"push";
//设置转场动画子类型
annimation.subtype=@"fromLeft";
//fromLeft 动画由左边开始
//fromRight 动画由右边开始
//fromTop
//fromBottom
//当type为 @rotate(旋转)的时候,它也有几个对应的subtype 分别为:
/*
*90cw 逆时针旋转 90度
*90ccw 顺时针旋转 90度
*180cw 逆时针旋转 180度
*180ccw 顺时针旋转 180度
*/
annimation.duration=3;
[self.imgView.layer addAnimation:annimation forKey:nil];
//组动画 CAAnimationGroup
//一张图片同时有平移,旋转,缩放效果(采用组动画实现)
//1.创建组动画对象
CAAnimationGroup *group =[CAAnimationGroup animation];
//2.往里面添加多个动画
//2.1平移动画
CABasicAnimation *positionAni=[CABasicAnimatiion animation];
positionAni.keyPath=@"position";
positionAni.toValue=[NSValue valueWithCGPoint:CGPointMake(200,200)];
group.animations=@[positionAni];
//2.2旋转效果
CABasicAnimation *rotationAni = [CABasicAnimation animation];
rotationAni.keyPath=@"transfrom.rotation";
rotationAni.toValue=@(M_PI_2);
group.animations=@[rotationAni];
//2.3缩放效果
CABasicAnimation *scaleAni=[CABasicAnimation animation];
scaleAni.keyPath=@"transform.scale";
scaleAni.toValue=@(0.5);
group.animations=@[scaleAni];
//3.把组动画添加到图层上
[self.imgView.layer addAnimation:group forKey:nil];
ios 动画(抖动,入场动画,组动画)
最新推荐文章于 2020-04-09 15:27:32 发布