-
Emitter Layers 发射极层
发射极层(CAEmitterLayer)是在一定程度上与动画图像相提并论的:一旦你建立了一个发射极层,它会自己执行所有的动画。该动画的性质是相当窄的:一个发射极层发射的粒子,是CAEmitterCell实例。但是,通过发射极层的属性和它的发射单元的巧妙设置,可以实现一些惊人的效果。此外,使用Core Animation的动画本身就是动画。下面是CAEmitterCell一些有用的基本属性:contents, contentsRect这些都是仿照同名的CALayer的属性,虽然CAEmitt...…
-
iOS Actions
为了完整起见,我现在会解释隐式动画是如何工作的 - 也就是隐式动画如何在后台转换成显式动画。隐式动画的基础是动作机制。什么是动作 Action?一个动作是一个实现了CAAction 协议的对象。意味着这个对象实现了 runActionForKey:object:arguments:。这个动作对象可以做任何事情来响应这个消息。实际上,只有CAAnimation 实现了CAAction这个协议。你不能直接向一个动画发送runActionForKey:object:arguments:消息,而是...…
-
Core Animation(3)
Transitions 转换一个图层的转换动画涉及到对一个图层的两次“复制”,第二次“复制”出现来取代第一次。这个转换由CATransition(一个CAAnimation的子类)来描述,主要有一下的主要属性来描述动画:type你的选择是: kCATransitionFade kCATransitionMoveIn kCATransitionPush kCATransitionReveal subtype如果type不是kCATrans...…
-
Core Animation(2)
Keyframe Animation 关键帧动画关键帧动画(CAKeyframeAnimation)是一种可以替代基本动画的动画(CABasicAnimation);它们都是CAPropertyAnimation的子类,它们都以相同的方式使用。不同的是,关键帧动画,除了可以指定起点和终点的值,也可以规定该动画的各个阶段(帧)的值。这相当于设置动画的属性值(一个NSArray)那么简单。下面是箭头来回摆动的动画更复杂的版本:动画包括开始和结束状态,并且摇动的程度变得越来越小:NSMutabl...…
-
Core Animation(1)
Core Animation 是iOS动画技术的根本。 视图动画和隐式图层动画都仅仅是Core Animation的方便包装。 Core Animation 是显式图层动画,让你创造更加绚丽的动画。让视图的根图层执行动画是一种图层动画,而不是视图动画--因此不会对视图的子视图进行自动布局,所以我们常常喜欢使用视图动画,而不是图层动画。CABasicAnimation and Its Inheritance通过Core Animation驱动一个属性执行动画的最简单方法就是使用CABasic...…
-
隐式图层动画(Implicit Layer Animation)
如果一个图层已经存在于界面上,而且不是一个视图的根图层,使它执行动画就如设置属性一样简单。文档中所说的动画属性的更改会自动解释为要求动态显示变化。换句话说,图层属性更改默认是执行动画的!多个属性的变化被认为是同一个动画的一部分。这种机制被称为隐式动画。你不能在视图的根图层中使用隐式动画。你可以直接使这个根图层执行动画,但是你必须使用显式的动画,后面会讲到。视图的根图层都是没有任何实际的绘画的,因此改变非根图层的属性都是会自动执行动画。图层的frame属性是不会执行动画的,为了使图层的fra...…
-
iOS Animation 学习(4)
Springing 弹性在iOS 7中,有一个内置的动画曲线,好像挤压弹簧:[UIView animateWithDuration:0.8 delay:0 usingSpringWithDamping:0.7 initialSpringVelocity:0 options:0 animations:^{ CGPoint p = self.v.center; p.y += 100; self.v.center = p;} compl...…
-
iOS Animation 学习(3)
View Animation OptionsUIView的类方法 nimateWithDuration:animations: 和 animateWithDuration:animations:completion: 都是 animateWith- Duration:delay:options:animations:completion: 的缩减版,参数解析如下: duration 动画的播放时间:从开始到结束需要多长时间(以秒为单位)来运行。你也可以认为这是动画的速度。显...…
-
iOS Animation 学习(2)
UIImageView and UIImage AnimationUIImageView提供了形式很简单的动画,可能这些不值得一提,尽管如此,有时候它就是你所需要的全部。你给UIImageView 的 animationImages 或者 highlightedAnimationImages属性 一个装有UIImage 的NSArray值,这个数组代表一个简单的动画片“帧”。但你发送 startAnimating消息,图片依次显示,帧率由animationDuration属性决定,重复次数...…
-
iOS Animation 学习(1)
动画是属性随着时间的可视化变化。不断变化的属性,可能是位置:东西移动或改变大小。其他种类的属性也是可以是动画的。例如,视图的背景颜色可以从红色变为绿色,不是瞬间的,而是从一个到另一个褪色的可视变化。或认为可能会从不透明变成透明的,也不是瞬间的,而是可视的渐行渐远。如果没有帮助,我们大多数人会觉得动画遥不可及。有太多的并发问题 - 计算复杂,时机,屏幕刷新,线程,等等。幸运的是,帮助是有的。你不需要自己执行动画,你只需描述它,命令它,动画会为你执行。要求执行动画可以很简单,比如设置一个属性值...…