iOS动画技术笔记(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:44 点击:

  

   self.view.backgroundColor =[UIColor blackColor];

   self.title = [[self class]displayName];

  

   UIImage *image = [UIImageimageNamed:@"batman.png"];

   logoLayer = [CALayer layer];

   logoLayer.bounds =CGRectMake(0, 0, image.size.width, image.size.height);

   logoLayer.position =CGPointMake(160, 180);

   logoLayer.contents =(id)image.CGImage;

  

   // Add layer as a sublayerof the UIView's layer

   [self.view.layeraddSublayer:logoLayer];

}

 

- (void)scaleByFactor:(CGFloat)factor {

   CABasicAnimation*scaleAnimation = [CABasicAnimationanimationWithKeyPath:@"transform.scale"];

    NSNumber *scaleFactor =[NSNumber numberWithFloat:factor];

   scaleAnimation.toValue =scaleFactor;

   scaleAnimation.duration =3.0f;

   scaleAnimation.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

    // Set the model layer'sproperty so the animation sticks at the 'toValue' state

   [logoLayer addAnimation:scaleAnimationforKey:@"transformAnimation"];

}

这里动画效果还只是针对一个视图对象的,如果需要多个视图同时操作,则需要实现动画联动,也就是CAAnimationGroup。将多个CABasicAnimation对象就加到一个数组中,再将这个数组设置到CAAnimationGroup的对象中,最后将CAAnimationGroup的对象加到图层的动画属性中。

   CAAnimationGroup*animationGroup = [CAAnimationGroup animation];

   animationGroup.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 的大小,但是不能控制 位置

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Lexical or Preprocessor Issue 'xxx.h
  • ios学习笔记(二)xcode 4.3.2下实现基本交互
  • ios版本的helloworld
  • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
  • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
  • UITableView一些方法
  • IOS类似iphone通讯录TableView的完整demo【附源码】
  • [iPhone中级]iPhone团购信息客户端的开发 (二)
  • iphone(object-c)内存管理(1)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1