ios animation 动画效果实现
1.过渡动画 CATransition
CATransition *animation = [CATransition animation];[animation setDuration:1.0];[animation setType:kCATransitionFade];[animation setSubtype:kCATransitionFromLeft];[_imgPic.layer addAnimation:animation forKey:nil];
说明:
(1).Duration 延迟
(2).Type
kCATransitionFade // 交叉淡化过渡(不支持过渡方向)
kCATransitionMoveIn // 新视图移到旧视图上面
kCATransitionPush // 新视图把旧视图推出去
kCATransitionReveal // 将旧视图移开,显示下面的新视图
cube // 立方体翻滚效果
oglFlip // 上下左右翻转效果
suckEffect // 收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect // 滴水效果(不支持过渡方向)
pageCurl // 向上翻页效果
pageUnCurl // 向下翻页效果
cameraIrisHollowOpen // 相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose // 相机镜头关上效果(不支持过渡方向)
2.路径动画 CAKeyframeAnimation
CAKeyframeAnimation *ani=[CAKeyframeAnimation animation];CGMutablePathRef aPath=CGPathCreateMutable();CGPathMoveToPoint(aPath, nil, 20, 20);CGPathAddCurveToPoint(aPath, nil, 20, 40,220, 40,240, 380);ani.path=aPath;ani.duration=10;ani.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];ani.rotationMode=@"autoReverse";[redView.layer addAnimation:ani forKey:@"position"];
//特殊曲线 贝塞尔曲线
//贝塞尔曲线路径UIBezierPath *movePath = [UIBezierPath bezierPath];[movePath moveToPoint:CGPointMake(0.0, 0.0)];[movePath addQuadCurveToPoint:CGPointMake(self.view.frame.size.width/2.0, self.view.frame.size.height/2.0) controlPoint:CGPointMake(self.view.frame.size.width, self.view.frame.size.height)];
说明:(1).moveToPoint :动画起始位置
(2).轨迹
- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint;
//endPoint 完成位置 controllerPoint 轨迹中的位置
3.基本类型 CABasicAnimation 事例
//背景色动画CABasicAnimation *animation=[CABasicAnimation animation];//设置颜色animation.toValue=(id)[UIColor blueColor].CGColor;//动画时间animation.duration=1;//是否反转变为原来的属性值animation.autoreverses=YES;//把animation添加到图层的layer中,便可以播放动画了。forKey指定要应用此动画的属性[self.view.layer addAnimation:animation forKey:@"backgroundColor"];//缩放动画CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];scaleAnim.removedOnCompletion = YES;//透明动画CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"];opacityAnim.fromValue = [NSNumber numberWithFloat:1.0];opacityAnim.toValue = [NSNumber numberWithFloat:0.1];opacityAnim.removedOnCompletion = YES;
4. UIViewAnimationWithBlocks
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion:(void (^ __nullable)(BOOL finished))completion + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^ __nullable)(BOOL finished))completion
// UIViewAnimationOptions
UIViewAnimationOptionLayoutSubviews //提交动画的时候布局子控件,表示子控件将和父控件一同动画。
UIViewAnimationOptionAllowUserInteraction //动画时允许用户交流,比如触摸
UIViewAnimationOptionBeginFromCurrentState //从当前状态开始动画
UIViewAnimationOptionRepeat //动画无限重复
UIViewAnimationOptionAutoreverse //执行动画回路,前提是设置动画无限重复
UIViewAnimationOptionOverrideInheritedDuration //忽略外层动画嵌套的执行时间
UIViewAnimationOptionOverrideInheritedCurve //忽略外层动画嵌套的时间变化曲线
UIViewAnimationOptionAllowAnimatedContent //通过改变属性和重绘实现动画效果,如果key没有提交动画将使用快照
UIViewAnimationOptionShowHideTransitionViews //用显隐的方式替代添加移除图层的动画效果
UIViewAnimationOptionOverrideInheritedOptions //忽略嵌套继承的选项
//时间函数曲线相关
UIViewAnimationOptionCurveEaseInOut //时间曲线函数,由慢到快
UIViewAnimationOptionCurveEaseIn //时间曲线函数,由慢到特别快
UIViewAnimationOptionCurveEaseOut //时间曲线函数,由快到慢
UIViewAnimationOptionCurveLinear //时间曲线函数,匀速
//转场动画相关的
UIViewAnimationOptionTransitionNone //无转场动画
UIViewAnimationOptionTransitionFlipFromLeft //转场从左翻转
UIViewAnimationOptionTransitionFlipFromRight //转场从右翻转
UIViewAnimationOptionTransitionCurlUp //上卷转场
UIViewAnimationOptionTransitionCurlDown //下卷转场
UIViewAnimationOptionTransitionCrossDissolve //转场交叉消失
UIViewAnimationOptionTransitionFlipFromTop //转场从上翻转
UIViewAnimationOptionTransitionFlipFromBottom //转场从下翻转
测试demo:https://github.com/lvdachao/animation
转载于:https://www.cnblogs.com/chaochaobuhuifei55/p/5834367.html
ios animation 动画效果实现相关推荐
- android中设置Animation 动画效果
在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...
- animation动画效果 1002 css3
animation动画效果 1002 css3 什么是动画 使用步骤 如何定义动画 @keyframes 动画名称{from{属性:值}percentage{属性:值}to{属性:值} } 或者 @k ...
- android编程xml动画,Android中xml设置Animation动画效果详解
在Android中,Animation动画效果的实现可以通过两种方式进行实现,一种是tweened animation渐变动画,另一种是frame by frame animation画面转换动画. ...
- CSS animation动画效果实现精灵图、雪碧图动画,多动画应用
CSS animation动画效果实现精灵图.雪碧图动画,多动画应用 素材下载 分析图片动画过程 图片可以分成4*6=24 小图片也就是24帧 方法1 可以把每一行成一个动画,所以可以拆分4个动画 方 ...
- Android Animation动画效果简介
AlphaAnimation 淡入淡出动画 <alpha>A fade-in or fade-out animation. Represents an AlphaAnimation. a ...
- Android动画开发——Animation动画效果
动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面 ...
- iOS 转盘动画效果实现
代码地址如下: http://www.demodashi.com/demo/11598.html 近期公司项目告一段落,闲来无事,看到山东中国移动客户端有个转盘动画挺酷的.于是试着实现一下,看似简单, ...
- android+动画悬浮窗口,悬浮窗能实现自定Animation动画效果吗?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我的软件运行后会直接去调用Service来显示悬浮的Button 后来在学习Dialog时认识了Animation,显示.退出对话窗时都能自定动画 就在想 ...
- 在GridView的行绑定中应用Animation动画效果
今天做一个功能需要实现绑定GridView的行Button点击就实现Animation的动画效果,终于被我解决了!主要代码如下: GridVIew行绑定: <ItemTemplate> ...
最新文章
- R语言可视化面积图(area chart)移除轴标签与实际图形之间的空白区域实战:默认的面积图、移除轴标签与实际图形之间的空白区域
- android 计算执行时间
- 熟练掌握HDFS的Shell访问
- C/C++笔试、面试题
- 用localStorage实现登录时记住密码的功能
- 自定义注解做数据验证
- sptk安装,编译流程
- 从需求到设计,嵌入式产品开发流程
- html静态网页模板cs4,Adobe Dreamweaver CS4 精简版
- Linux 下的 Docker 安装与使用
- Servlet笔记之(三)
- php开发神器 -- phpStudy
- [转]计算机语言的种类总结
- codeigniter中base_url和site_url
- java随机数种子_使用种子的Java随机数
- win10屡次自动打开系统代理服务器的解决办法
- 如何制作网站_如何制作自己的网站
- 国际知名制作公司名录及网址大全,制作人员必备
- Ubuntu 20.04 安装 ros 遇到的问题: The following packages have unmet dependencies
- 流处理引擎:ksql
热门文章
- java.sql.SQLException: Invalid utf8 character string: 'ACED00'
- R绘图 第十篇:绘制散点图(高级)
- DML、DDL、DCL是什么?
- 文件夹目录下所有的视频使用ffmpeg指定位置截图
- 2017年下半年计算机二级报名,2017河北大学下半年计算机二级报名时间
- Linux系统重装出现c0409a9f,自学IT吧论坛Linux系统运营系列视频教程#28期2016系统/服务器资源天地 - www.zxit8.com...
- 邓明善:一定要学会与机遇博弈
- 【sklearn】随机森林 - 预测用户是否离网
- 利用VBA代码合并多个Excel表格
- 全国计算机职称考试excel2003,全国计算机职称考试excel2003题库及答案.pdf