ios 动画(抖动,入场动画,组动画)

//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];







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值