@@ -215,7 +215,7 @@ self.colorLayer.backgroundColor = color.CGColor;
215215
216216当使用`-addAnimation:forKey:`把动画添加到图层,这里有一个到目前为止我们都设置为`nil`的`key`参数。这里的键是`-animationForKey:`方法找到对应动画的唯一标识符,而当前动画的所有键都可以用`animationKeys`获取。如果我们对每个动画都关联一个唯一的键,就可以对每个图层循环所有键,然后调用`-animationForKey:`来比对结果。尽管这不是一个优雅的实现。
217217
218- 幸运的是,还有一种更加简单的方法。像所有的`NSObject`子类一样,`CAAnimation`实现了KVC(键-值-编码)协议,于是你可以用`-setValue:forKey:`和`-valueForKey:`方法来存取属性。但是`CAAnimation`有一个不同的性能 :它更像一个`NSDictionary`,可以让你随意设置键值对,即使和你使用的动画类所声明的属性并不匹配。
218+ 幸运的是,还有一种更加简单的方法。像所有的`NSObject`子类一样,`CAAnimation`实现了KVC(键-值-编码)协议,于是你可以用`-setValue:forKey:`和`-valueForKey:`方法来存取属性。但是`CAAnimation`有一个与众不同的特性 :它更像一个`NSDictionary`,可以让你随意设置键值对,即使和你使用的动画类所声明的属性并不匹配。
219219
220220这意味着你可以对动画用任意类型打标签。在这里,我们给`UIView`类型的指针添加的动画,所以可以简单地判断动画到底属于哪个视图,然后在委托方法中用这个信息正确地更新钟的指针(清单8.4)。
221221
@@ -310,7 +310,7 @@ self.colorLayer.backgroundColor = color.CGColor;
310310
311311` CAKeyframeAnimation ` 是另一种UIKit没有暴露出来但功能强大的类。和` CABasicAnimation ` 类似,` CAKeyframeAnimation ` 同样是` CAPropertyAnimation ` 的一个子类,它依然作用于单一的一个属性,但是和` CABasicAnimation ` 不一样的是,它不限制于设置一个起始和结束的值,而是可以根据一连串随意的值来做动画。
312312
313- * 关键帧* 起源于传动动画,意思是指主导的动画在显著改变发生时重绘当前帧(也就是* 关键* 帧),每帧之间剩下的绘制(可以通过关键帧推算出)将由熟练的艺术家来完成。` CAKeyframeAnimation ` 也是同样的道理:你提供了显著的帧,然后Core Animation在每帧之间进行插入 。
313+ * 关键帧* 起源于传动动画,意思是指主导的动画在显著改变发生时重绘当前帧(也就是* 关键* 帧),每帧之间剩下的绘制(可以通过关键帧推算出)将由熟练的艺术家来完成。` CAKeyframeAnimation ` 也是同样的道理:你提供了显著的帧,然后Core Animation在每帧之间进行插值 。
314314
315315我们可以用之前使用颜色图层的例子来演示,设置一个颜色的数组,然后通过关键帧动画播放出来(清单8.5)
316316
@@ -578,7 +578,7 @@ self.colorLayer.backgroundColor = color.CGColor;
578578
579579我们在第七章的例子中就已经用到过` kCATransitionPush ` ,它创建了一个新的图层,从边缘的一侧滑动进来,把旧图层从另一侧推出去的效果。
580580
581- ` kCATransitionMoveIn ` 和` kCATransitionReveal ` 与` kCATransitionPush ` 类似,都实现了一个定向滑动的动画,但是有一些细微的不同,` kCATransitionMoveIn ` 从顶部滑动进入,但不像推送动画那样把老土层推走 ,然而` kCATransitionReveal ` 把原始的图层滑动出去来显示新的外观,而不是把新的图层滑动进入。
581+ ` kCATransitionMoveIn ` 和` kCATransitionReveal ` 与` kCATransitionPush ` 类似,都实现了一个定向滑动的动画,但是有一些细微的不同,` kCATransitionMoveIn ` 从顶部滑动进入,但不像推送动画那样把老图层推走 ,然而` kCATransitionReveal ` 把原始的图层滑动出去来显示新的外观,而不是把新的图层滑动进入。
582582
583583后面三种过渡类型都有一个默认的动画方向,它们都从左侧滑入,但是你可以通过` subtype ` 来控制它们的方向,提供了如下四种类型:
584584
@@ -730,7 +730,7 @@ self.colorLayer.backgroundColor = color.CGColor;
730730@end
731731```
732732
733- 文档暗示过在iOS5(带来了Core Image框架)之后,可以通过`CATransition`的`filter`属性,用`CIFilter`来创建其它的过渡效果。然是直到iOS6都做不到这点 。试图对`CATransition`使用Core Image的滤镜完全没效果(但是在Mac OS中是可行的,也许文档是想表达这个意思)。
733+ 文档暗示过在iOS5(带来了Core Image框架)之后,可以通过`CATransition`的`filter`属性,用`CIFilter`来创建其它的过渡效果。然而直到iOS6都做不到这点 。试图对`CATransition`使用Core Image的滤镜完全没效果(但是在Mac OS中是可行的,也许文档是想表达这个意思)。
734734
735735因此,根据要实现的效果,你只用关心是用`CATransition`还是用`UIView`的过渡方法就可以了。希望下个版本的iOS系统可以通过`CATransition`很好的支持Core Image的过渡滤镜效果(或许甚至会有新的方法)。
736736
0 commit comments