核心动画中的动画组和转场动画
动画组 CAAnimationGroup
- (void)demoAnimationGroup
{static NSString * const kCAPostionKeyPath = @"position";static NSString * const kCAOpacityKeyPath = @"opacity";static NSString * const kCARotationKeyPath = @"transform.rotation";static NSString * const kCAScaleKeyPath = @"transform.scale";UIBezierPath *path = [UIBezierPath bezierPath];[path moveToPoint:_demoView.layer.position];[path addCurveToPoint:CGPointMake(260, 400) controlPoint1:CGPointMake(0, 460) controlPoint2:CGPointMake(320, 0)];//路径动画CAKeyframeAnimation *posAnimation = [CAKeyframeAnimation animationWithKeyPath:kCAPostionKeyPath];posAnimation.path = path.CGPath;posAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];//透明度动画CABasicAnimation *opaAnimation = [CABasicAnimation animationWithKeyPath:kCAOpacityKeyPath];opaAnimation.duration = 2.0f;opaAnimation.toValue = @(0.3f);opaAnimation.autoreverses = YES;//旋转动画CABasicAnimation *rotAnimation = [CABasicAnimation animationWithKeyPath:kCARotationKeyPath];rotAnimation.duration = 2.0f;rotAnimation.toValue = @(M_PI);rotAnimation.autoreverses = YES;//缩放动画CABasicAnimation *scaAnmaiton = [CABasicAnimation animationWithKeyPath:kCAScaleKeyPath];scaAnmaiton.duration = 2.0f;scaAnmaiton.toValue = @(1.5f);scaAnmaiton.autoreverses = YES;//设置动画组CAAnimationGroup *group = [CAAnimationGroup animation];group.animations = @[posAnimation, opaAnimation, rotAnimation, scaAnmaiton];group.duration = 4.0f;group.removedOnCompletion = NO;group.fillMode = kCAFillModeForwards;[_demoView.layer addAnimation:group forKey:nil];
}
这个动画组对demoView的layer加入了一些同时进行的动画,比如双控制点的贝塞尔路径,透明度的渐隐渐明,旋转以及缩放等。
CATransition
- (void)viewTransition
{static NSString * const kCATransitionTypeFlip = @"oglFlip"; //翻页效果CATransition *transition = [CATransition animation];transition.type = kCATransitionTypeFlip;transition.subtype = kCATransitionFromRight;transition.duration = 1.5f;[_transitionOrangeView.layer addAnimation:transition forKey:nil];[self.view performSelector:@selector(sendSubviewToBack:) withObject:_transitionOrangeView afterDelay:1.0f];
}
这个方法简单的实现了view翻页的效果,当然目前控制器的根view只有一个subview,所以使用sendSubviewToBack的方法后显示的还是这个view,但是看到了动画效果。
- (void)anotherTransition
{_transitionBlueView = [[UIView alloc] initWithFrame:self.view.bounds];_transitionBlueView.backgroundColor = [UIColor blueColor];[UIView transitionFromView:_transitionOrangeViewtoView:_transitionBlueViewduration:1.0foptions:UIViewAnimationOptionTransitionCrossDissolve completion:nil];
}
代码很简洁和易读。
核心动画中的动画组和转场动画相关推荐
- android+原点扩散动画,捋一捋Android的转场动画
捋一捋Android的转场动画 由于录制的gif过大,导致CSDN部分gif无法显示,可以传送到GitHub查看本篇博客 背景 随着 Material Design设计概念的提出,使得很多的开发过程中 ...
- iOS自定义转场动画(1)——自定义Push转场动画
版本:Xcode 7.0.1 语言:Objective-C 转场动画就是viewController之间切换的动画. 主要有以下三种自定义方法: 列Push & Pop Modal Segue ...
- 动画中的View的点击判断
本文内容为原创,转载者请注明原始作者以及原始出处,以避免版权纠纷! 在开发Android应用过程中,我曾遇到过下面的问题: 假设有一个View,它在做一系列复杂的.组合的Tween动画(平 ...
- android 转场动画 监听,Android 中的转场动画及兼容处理
Android 中的动画有很多,除了在一个界面上使用帧动画.属性动画将一个或多个 View 进行动画处理以外,还可以用于两个界面之间过渡.跳转.在 Android 5.0 之前,我们已经有了 over ...
- 定格动画中运用的计算机技术是,定格动画中现代技术发展与应用.doc
定格动画中现代技术发展与应用 定格动画中现代技术的发展和应用 [摘 要]定格动画的发展是有目共睹的,在继承传统定格动画制作手法的同时,未来还需完善定格动画更先进的制作手段.要充分利用现代科技,完善造型 ...
- (0030) iOS 开发之跳转之转场动画
demo: 1 iOS ~ ViewController的Push,Pop和Present,Dismiss转场动画 // http://blog.csdn.net/zhangao0086/artic ...
- iOS自定义转场动画实战讲解
转场动画这事,说简单也简单,可以通过presentViewController:animated:completion:和dismissViewControllerAnimated:completio ...
- 控制器之间跳转实现转场动画,动画控制器概念
在iOS7以前,开发者如果希望定制导航控制器推入推出视图时的转场动画,一般都只能通过子类化UINavigationController或者自己编写动画代码去覆盖相应的方法,现在iOS7为开发者带来了福 ...
- 八 iOS之 CATransition (转场动画)
CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果. 动画转场类型 类型字符串 效果说明 关键字 方向 fade 交叉淡化过渡 YES p ...
最新文章
- 如何关闭Visual Assist?
- 【BASIS系列】SAP Basis系统管理中重置用户缓冲哪些需要注意
- OpenCV3源代码目录解析(算法模块解析 和 示例目录解析)
- 1.5 matlab常量与变量
- ie 不执行回调函时_javascript引擎执行的过程的理解--执行阶段
- golang go mod包管理:安装第三方包的三种方式(go get/go mod download/go mod vendor)
- 组合CPU和DRAM
- vrm华为_华为-笔记本电脑如何安装FusionCompute虚拟化平台?
- qwebkit 网页无法加载图片_网页图片无法显示了?这样就能解决
- 【工具】Sublime Text 自动保存功能
- (转)遇到重复的Maven项目初始配置,就要创建自己的Maven Archetype
- Audio 加载hal (loadHwModule)
- Revit2020下载Revit2020安装教程
- 利用VBB仿真——实现LED+数字键盘密码验证
- 『水晶报表』实现打印
- 华为c语言笔试题下载,2005年华为招聘--C语言笔试试题
- 我对八种常见数据结构的理解
- 刚刚用鸿蒙跑了个“helloworld”!我特么怀疑人生了
- 解决AppBarLayout嵌套WebView滑动冲突的问题
- 微信小程序 #项目笔记# | 从0到1实现外卖点餐系统小程序