各种效果动画操作展示(放大、缩小、旋转、翻转等)
2016-08-01 15:57
323 查看
各效果动画主要是对UIView,或UIView的layer进行操作。
动画效果有放大、缩小、旋转、翻转等操作;以及还有私有API的方法,如立方体旋转、相机开或关、抽纸、涟漪等。
1、各种动画效果
其中除了'fade', `moveIn', `push' , `reveal' ,其他属于似有的API(我是这么认为的,可以点进去看下注释).可以分别使用'kCATransitionFade',
'kCATransitionMoveIn', 'kCATransitionPush', 'kCATransitionReveal'来调用.
@"cube" 立方体翻滚效果
@"moveIn" 新视图移到旧视图上面
@"reveal" 显露效果(将旧视图移开,显示下面的新视图)
@"fade" 交叉淡化过渡(不支持过渡方向)(默认为此效果)
@"pageCurl" 向上翻一页
@"pageUnCurl" 向下翻一页
@"suckEffect" 收缩效果,类似系统最小化窗口时的神奇效果(不支持过渡方向)
@"rippleEffect" 滴水效果,(不支持过渡方向)
@"oglFlip" 上下左右翻转效果
@"rotate" 旋转效果
@"push"
@"cameraIrisHollowOpen" 相机镜头打开效果(不支持过渡方向)
@"cameraIrisHollowClose" 相机镜头关上效果(不支持过渡方向)
kCATransitionFade 交叉淡化过渡
kCATransitionMoveIn 新视图移到旧视图上面
kCATransitionPush 新视图把旧视图推出去
kCATransitionReveal 将旧视图移开,显示下面的新视图
2、subType 各种动画方向
kCATransitionFromRight; 同字面意思(下同)
kCATransitionFromLeft;
kCATransitionFromTop;
kCATransitionFromBottom;
当type为@"rotate"(旋转)的时候,它也有几个对应的subtype,分别为:
90cw 逆时针旋转90°
90ccw 顺时针旋转90°
180cw 逆时针旋转180°
180ccw 顺时针旋转180°
3、timingFunction
用于变化起点和终点之间的插值计算,形象点说它决定了动画运行的节奏,比如是均匀变化(相同时间变化量相同)还是先快后慢,先慢后快还是先慢再快再慢.
动画的开始与结束的快慢,有五个预置分别为(下同):
kCAMediaTimingFunctionLinear
线性,即匀速
kCAMediaTimingFunctionEaseIn
先慢后快
kCAMediaTimingFunctionEaseOut
先快后慢
kCAMediaTimingFunctionEaseInEaseOut
先慢后快再慢
kCAMediaTimingFunctionDefault
实际效果是动画中间比较快
// 推动动画(从上往下推)
CATransition *animation = [CATransition animation];
[animation setDuration:0.35f];
[animation setFillMode:kCAFillModeForwards];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
[animation setType:kCATransitionPush];// 移动kCATransitionMoveIn
[animation setSubtype:kCATransitionFromBottom];
[self.flyView.layer addAnimation:animation forKey:nil];
动画效果有放大、缩小、旋转、翻转等操作;以及还有私有API的方法,如立方体旋转、相机开或关、抽纸、涟漪等。
1、各种动画效果
其中除了'fade', `moveIn', `push' , `reveal' ,其他属于似有的API(我是这么认为的,可以点进去看下注释).可以分别使用'kCATransitionFade',
'kCATransitionMoveIn', 'kCATransitionPush', 'kCATransitionReveal'来调用.
@"cube" 立方体翻滚效果
@"moveIn" 新视图移到旧视图上面
@"reveal" 显露效果(将旧视图移开,显示下面的新视图)
@"fade" 交叉淡化过渡(不支持过渡方向)(默认为此效果)
@"pageCurl" 向上翻一页
@"pageUnCurl" 向下翻一页
@"suckEffect" 收缩效果,类似系统最小化窗口时的神奇效果(不支持过渡方向)
@"rippleEffect" 滴水效果,(不支持过渡方向)
@"oglFlip" 上下左右翻转效果
@"rotate" 旋转效果
@"push"
@"cameraIrisHollowOpen" 相机镜头打开效果(不支持过渡方向)
@"cameraIrisHollowClose" 相机镜头关上效果(不支持过渡方向)
kCATransitionFade 交叉淡化过渡
kCATransitionMoveIn 新视图移到旧视图上面
kCATransitionPush 新视图把旧视图推出去
kCATransitionReveal 将旧视图移开,显示下面的新视图
2、subType 各种动画方向
kCATransitionFromRight; 同字面意思(下同)
kCATransitionFromLeft;
kCATransitionFromTop;
kCATransitionFromBottom;
当type为@"rotate"(旋转)的时候,它也有几个对应的subtype,分别为:
90cw 逆时针旋转90°
90ccw 顺时针旋转90°
180cw 逆时针旋转180°
180ccw 顺时针旋转180°
3、timingFunction
用于变化起点和终点之间的插值计算,形象点说它决定了动画运行的节奏,比如是均匀变化(相同时间变化量相同)还是先快后慢,先慢后快还是先慢再快再慢.
动画的开始与结束的快慢,有五个预置分别为(下同):
kCAMediaTimingFunctionLinear
线性,即匀速
kCAMediaTimingFunctionEaseIn
先慢后快
kCAMediaTimingFunctionEaseOut
先快后慢
kCAMediaTimingFunctionEaseInEaseOut
先慢后快再慢
kCAMediaTimingFunctionDefault
实际效果是动画中间比较快
self.flyView = [[UIView alloc] initWithFrame:CGRectMake(0, 200, 120, 60)]; [self.flyView setBackgroundColor:[UIColor lightGrayColor]]; [self.view addSubview:self.flyView];
// 放大缩小动画 [UIView animateWithDuration:0.3 animations:^{ // 放大 self.flyView.transform = CGAffineTransformMakeScale(2.0, 2.0); } completion:^(BOOL finished) { [UIView animateWithDuration:0.3 animations:^{ // 缩小 self.flyView.transform = CGAffineTransformMakeScale(0.6, 0.6); } completion:^(BOOL finished) { [UIView animateWithDuration:0.3 animations:^{ // 还原 self.flyView.transform = CGAffineTransformMakeScale(1.0, 1.0); }]; }]; }];
// 旋转动画 [UIView animateWithDuration:0.3 animations:^{ self.flyView.transform = CGAffineTransformMakeRotation(0.3); }];
// 翻转动画 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:0.35f]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:<span style="font-family: Arial, Helvetica, sans-serif;">self.flyView</span><span style="font-family: Arial, Helvetica, sans-serif;"> cache:NO];</span> [UIView commitAnimations];
// 翻页动画 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; [UIView setAnimationDuration:0.35f]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:<span style="font-family: Arial, Helvetica, sans-serif;">self.flyView</span> cache:NO]; [UIView commitAnimations];
// 推动动画(从上往下推)
CATransition *animation = [CATransition animation];
[animation setDuration:0.35f];
[animation setFillMode:kCAFillModeForwards];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
[animation setType:kCATransitionPush];// 移动kCATransitionMoveIn
[animation setSubtype:kCATransitionFromBottom];
[self.flyView.layer addAnimation:animation forKey:nil];
// 缩放动画 CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; scaleAnimation.toValue = [NSNumber numberWithFloat:0.0]; scaleAnimation.duration = 0.35f; scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [<span style="font-family: Arial, Helvetica, sans-serif;">self.flyView</span>.layer addAnimation:scaleAnimation forKey:nil];
// 旋转动画 CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; rotationAnimation.toValue = [NSNumber numberWithFloat:(2 * M_PI) * 2]; rotationAnimation.duration = 0.35f; rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [<span style="font-family: Arial, Helvetica, sans-serif;">self.flyView</span>.layer addAnimation:rotationAnimation forKey:nil];
// 旋转缩小再放大动画 CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; rotationAnimation.toValue = [NSNumber numberWithFloat:(2 * M_PI) * 2]; rotationAnimation.duration = 0.35f; rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; scaleAnimation.toValue = [NSNumber numberWithFloat:0.0]; scaleAnimation.duration = 0.35f; scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; animationGroup.duration = 0.35f; animationGroup.autoreverses = YES; animationGroup.repeatCount = 1; animationGroup.animations =[NSArray arrayWithObjects:rotationAnimation, scaleAnimation, nil]; [self.flyView.layer addAnimation:animationGroup forKey:@"animationGroup"];
// 翻转动画——私有API CATransition *animation = [CATransition animation]; [animation setDuration:0.35f]; [animation setFillMode:kCAFillModeForwards]; [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [animation setType:@"oglFlip"]; [animation setSubtype:@"fromTop"]; [self.flyView.layer addAnimation:animation forKey:nil];
// 立方体动画——私有API CATransition *animation = [CATransition animation]; [animation setDuration:0.35f]; [animation setFillMode:kCAFillModeForwards]; [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [animation setType:@"cube"]; [animation setSubtype:@"fromRight"]; [self.flyView.layer addAnimation:animation forKey:nil];
// 抽纸动画——私有API CATransition *animation = [CATransition animation]; [animation setDuration:0.35f]; [animation setFillMode:kCAFillModeForwards]; [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [animation setType:@"suckEffect"]; [self.flyView.layer addAnimation:animation forKey:nil];
// 涟漪动画——私有API CATransition *animation = [CATransition animation]; [animation setDuration:0.35f]; [animation setFillMode:kCAFillModeForwards]; [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [animation setType:@"rippleEffect"]; [self.flyView.layer addAnimation:animation forKey:nil];
// 相机动画——私有API CATransition *animation = [CATransition animation]; [animation setDuration:0.35f]; [animation setFillMode:kCAFillModeForwards]; [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [animation setType:@"cameraIrisHollowOpen"]; // 相机关cameraIrisHollowClose;相机开cameraIrisHollowOpen [animation setSubtype:@"fromRight"]; [self.flyView.layer addAnimation:animation forKey:nil];
相关文章推荐
- bmp图片文件的操作 旋转、翻转、放大缩小
- 用QMatrix实现帧的旋转、翻转、放大、缩小等简单操作示例
- Html5学习--运动且旋转并放大缩小的动画效果
- bmp图片文件的操作 旋转、翻转、放大缩小
- itext对水印图片的旋转、放大、缩小等操作的示例
- 视图弹出后放大又缩小的动画实现、类似于alertView效果
- 放大、缩小、旋转、开始动画
- 一个CSS+jQuery的放大缩小动画效果
- Android开发_拖动效果,旋转效果,两点放大缩小的实现
- android实现对图片的放大缩小旋转等操作
- Bitmap位图渲染与操作(图片移动,放大,缩小,旋转,镜像发转)
- android初学------使用ScaleAnimation 动画实现放大缩小效果
- cocos2d各种动作的使用(变色、跳动、旋转、闪烁、悬挂、放大缩小、渐变、animation)(三)
- 29_图片的放大和缩小,30_图形的旋转和特殊效果
- 风火轮 –动画效果:擦除、形状、轮子、随机线条、翻转远近、缩放、旋转、弹跳效果
- jquery实现图片放大,缩小,翻转,旋转小实例
- Bitmap位图渲染与操作(图片移动,放大,缩小,旋转,镜像发转)--android游戏开发
- C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果,滤波,图像截取) 对图片的处理 : 亮度调整 抓屏 翻转 随鼠标画矩形
- CSS+jQuery实现的一个放大缩小动画效果
- CSS+jQuery实现的一个放大缩小动画效果