这里主要讲的是使用CoreAnimate实现所需的动画。
简介一些,可以设置layer的移动,大小,三维位置,透明度,圆角,背景颜色。ios和osx的是不一样的,官网的只是简介,没有太多实际的例子。
 
关键词: UIView Animation, QuartzCore, CAAnimation, UIBezierPath, CGAXXX, CADisplayLink, UIKit Dynamic(UIDynamics, UISnapBehavior), CAEmitter, pop
 
关于UIKit中的Dynamic,其实就是加入了一个简化版的2D动画引擎到APP应用中。也没有什么好介绍的,网上可以轻易的找到很多例子教程。无非就是重力,碰撞,震动等物理特性进行封装,不具有随机性,用法也非常简单。是独立开来的另外一个引擎框架。
 
pop库,facebook的开源动画引擎,据说效率更高,没有测试过,不误导,直接上链接:https://github.com/facebook/pop
 
再讨论Core Animation类体系图:
 
CAEmitter ???自带的粒子发射效果,做一个火焰?雾气?好像也没用上的机会。网上也是好多demo,很容易找.
 
QuartzCore其实是Core Animation的框架名字。而Core Animation是框架中的一等公民,位于media层,我们使用的CALayer就是来自于Quartz框架的,系统进行了大量的封装,各种图形,供各位开发者进行快速开发。而不是使用OpenGL ES这里更加底层的东西。这里毕竟不是游戏开发,只是app,学习成本不会太高。
 
其实大多数情况下,CAAnimation是能满足需求的。就是重绘,刷新视图,或者使用贝赛尔曲线直接绘制各种图形。(UIBezierPath)
实际应用例子:http://kittenyang.com/drawablebubble/   qq的消息气泡。原理:不断的响应势点击事件,利用贝塞尔曲线不断的重绘图形。还有其他的简洁的例子,在很多网站上都能快速的查阅到。
这里顺带提一下:CADisplayLink的作用原理,就是加入一个函数到进程的runloop中,每次runloop执行的话会执行这个sel,可以设置频率。注意一点,既然是系统的runloop,那么就要慎用了,如果加了很多操作?软件肯定会卡死的,慎用。
 
而事实上,我自己在开发的时候,用的最多的是自带的View Animation,非常简洁大方的代码。自带的spring函数,使用也非常简单。
我常使用于各种视图切换,以及各种按钮移动动画效果。
 
其实也很少有app用到很多动画的,用得好的话能让app应用变得高级很多,体验效果非常不一样。例如,最近很多人用的格拉瓦电影app,里边的一些效果就做得非常好,例如电影介绍页面,自定义的视图切换,选购按钮设计,不卡的tableView(圆形按钮等各种优化处理,可以通过xcode自带的core animate测试工具看出来),很用心的应用。但是,还是觉得有点乱乱的。动画还是多了点。使得整个app看起来,不够简洁,干净。(对比市场上大多数的app)。顺带说一下,那种图片的动画,一般就是截图+size+pos+bezierpath 进行处理的,都不麻烦的。
 
说到这儿,app的动画也讲完了,其实内容也不多。摘录上一篇CoreAnimation中推荐的一本书的语句:动画只是CoreAnimate的一小部分而已。   真的是实在话。
 

iOS CoreAnimate 动画实现的更多相关文章

  1. iOS CoreAnimate

    iOS CoreAnimate 东西比较多,这篇笔记是入门用的,主要讲述的是静态的图形绘画处理问题.(当然动画也只是一小部分)理解相关的概念问题:   参考资料 http://segmentfault ...

  2. iOS核心动画学习整理

    最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一 ...

  3. IOS 核心动画之CAKeyframeAnimation - iBaby

    - IOS 核心动画之CAKeyframeAnimation - 简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation ...

  4. iOS各种动画效果

    ios各种动画效果 最普通动画: //开始动画 [UIView beginAnimations:nil context:nil];  //设定动画持续时间 [UIView setAnimationDu ...

  5. IOS之动画

    IOS之动画   15.1 动画介绍 15.2 Core Animation基础 15.3 隐式动画 15.4 显式动画 15.5 关键帧显式动画 15.6 UIView级别动画 15.1 动画介绍 ...

  6. IOS 动画专题 --iOS核心动画

    iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看 ...

  7. ios 学习动画的套路 (一)

    你也肯定喜欢炫酷的动画! 在APP中,动画就是一个点睛之笔!可以给用户增加一些独特的体验感,估计也有许多的和我一样的,看着那些觉得不错的动画,也就只能流口水的孩子,毕竟~不知道从哪里下手去写!会连续的 ...

  8. Bodymovin:Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

    转自:https://www.cnblogs.com/zamhown/p/6688369.html 大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画 ...

  9. 大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

    前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...

随机推荐

  1. jquery的checkbox 全选和全不选

    今天写了一个checkbox的全选和全不选的功能: var check_all=function(){ if(this.checked){ //alert($(".adv_check_num ...

  2. 『U3D学习』破坏神回忆图<二>技能系统

  3. MongoDB安装及添加到Windows服务,随系统启动

    本文介绍在Windows环境下安装MongoDB及添加到Windows服务中,随系统启动 首先去官网下载Windows安装包:https://www.mongodb.org/downloads 一般情 ...

  4. Eplan简单教程

    鉴于AUTOCAD画电路图比较繁琐而且手动添加关联参考错误率较高,而EPLAN画电路图确实效率要高许多,也更规范.过年正好有点时间,把我这段时间学EPLAN的一些经验总结了一下,有兴趣可以看看,也省得 ...

  5. 在树莓派上使用no-ip动态域名的方法,也适用其它Linux平台

    注意,如果没有公网IP,本文的方法就不可行了. 首先,注册一个noip.com的帐号. 注册的步骤见这篇教程:http://www.cnblogs.com/infopi/p/3991407.html ...

  6. 拜拜了,浮动布局-基于display:inline-block的列表布局

    原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=1194

  7. C# 获取当前操作系统是32位还是64位

    注:判断整型的长度的方式,只有在AnyCPU编译模式下才有用.因此更好的办法是获取真的地址总线位宽(使用WMI,windows management instruementation). .NET 2 ...

  8. C++中利用数组对字符进行除重和排序

    题目:随机输入一组字符,对这组字符进行除重和排序输出, 例如:输入aafddbc 输出:abcdf 程序: #include "stdafx.h"#include<iostr ...

  9. [MySql] - 数据库备份还原

    导出数据库到SQL方法: mysqldump.exe -u[USERNAME] -p[PASSWORD] -h [IP] jira --lock-all-tables > c:\db.sql m ...

  10. QQ通信原理及QQ是怎么穿透内网进行通信的? (转)

    原:http://f543711700.iteye.com/blog/978044#bc2344608 QQ是一个基于TCP/UDP协议的通讯软件 发送消息的时候是UDP打洞,登陆的时候使用HTTP~ ...