iOS动画技术笔记(二)

2014-11-24 03:08:19 · 作者: · 浏览: 8
oup.duration =2.0f;


animationGroup.autoreverses= YES;


animationGroup.repeatCount =HUGE_VALF;


[animationGroupsetAnimations:[NSArray arrayWithObjects:rotationAnimation, scaleAnimation,nil]];



[logoLayeraddAnimation:animationGroup forKey:@"animationGroup"];


如果需要在图层上更精细的设置,那么需要CALayer上做扩展,形成各种各样的子类。


CALayer的子类有:


1) CAScrollLayer,用于简化显示层的一部分


2) CATextLayer,便于从字符串生成内容是文本的层


3) CATiledLayer,可用于显示复杂的图片


4) CAOpenGLLayer,提供OpenGLES渲染环境


CALayer能够对 UIView 做许多设定,如:阴影、边框、圆角和透明效果等,且这些设定都是很有用的。它的重要属性如下。


1. shadowPath :设置 CALayer 背景(shodow)的位置


2. shadowOffset :shadow 在 X 和 Y 轴 上延伸的方向,即shadow 的大小


3. shadowOpacity: shadow 的透明效果


4. shadowRadius :shadow 的渐变距离,从外围开始,往里渐变 shadowRadius 距离


5. masksToBounds: 很重要的属性,可以用此属性来防止子元素大小溢出父元素,如若防止溢出,请设为 true


6.borderWidth 和 boarderColor : 边框颜色和宽度,很常用


7. bounds :对于我来说比较难的一个属性,测了半天也没完全了解,只知道可以用来控制UIView 的大小,但是不能控制 位置


8. opacity :UIView 的透明效果


9. cornerRadius :UIView 的圆角


这些属性和UIView的属性很像,可以实现UIView实现不了的效果。


其实,我觉得UIKIT中声明的那么组件如UITextfield,uilable,uibutton,其实就是UIView的扩展,封装好了方便使用而已。


总结
在IOS中动画效果从layer层开始,向layer中添加CABasicAnimation对象,实际上就是layer中有一个预定义的功能,在视图viewDidAppear后就会执行这个功能点。


可能是因为CABasicAnimation稍微复杂点,IOS又封装出来一个类CATransition,它实现的功能有限,一些基本的动画操作如


可能是从方便使用的角度考虑,IOS又对UIView做了可做,有了beginAnimations:nil或animateWithDuration:animations:completion:等方法,可更方便地实现一些动画效果。


但是,如果要实现复杂的,更吸引人的动画,还需要在CALayer上下功夫。