CALayer(一)
CALayer
CALayer和UIView
CALayer和UIView相比--CALayer少了事件处理的功能,所以更加轻量级,性能更好一点,这就说明如果有一些和用户交互的东西是不建议用CALayer的
CALayer下的基本动画
这里是一个简单的CABasicAnimation的动画效果--延Z轴旋转的小太阳
//转动的小太阳
_sunLayer = [[CALayer alloc]init];
_sunLayer.bounds = CGRectMake(0, 0, 80, 80);
_sunLayer.position = CGPointMake(self.view.width -80, 180);
_sunLayer.delegate = self;//设置图层代理
_sunLayer.cornerRadius = 40;//圆角
_sunLayer.masksToBounds = YES;//
_sunLayer.contents = (id)[UIImage imageNamed:@"sun"].CGImage;
[self.view.layer addSublayer:_sunLayer];//添加图层到根图层
[self beginAnimation];//执行动画的方法
-(void)beginAnimation {
//1.创建动画
CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
//2.设置动画属性初始值和结束值
basicAnimation.toValue = [NSNumber numberWithFloat:M_PI*2];
//3.设置其他动画属性
basicAnimation.duration = 5.0;
basicAnimation.removedOnCompletion = NO;//结果后是否移除
basicAnimation.repeatCount = HUGE_VAL;//设置重复次数,huge_valf可看做无穷大,起到循环动画的效果
//4.添加动画到图层,注意key相当于给动画进行命名,以后获得该动画时可以使用此名称获取
[_sunLayer addAnimation:basicAnimation forKey:@"animation_transframe"];
}
这样这个图片就会在Z轴旋转