CALayer

CALayer图层https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CALayer_class/index.htmlAPI

CALayer是一个层的概念,视图之所以能够显示,都是因为这个层的原因但CALayer 不清楚具体的响应链(不能相应用户的点击触摸等事件).通过CALayer我们可以给UIView添加动画,还可以改变它的形状,边框宽度,颜色等。

CALayer的两个重要属性position 用来设置CALayer在父层中的位置 ,以父层左上角(0,0)  

anchorPoint(定位点、锚点) 决定CALayer上的点在父层中position所指的位置,以自己的左上角(0,0) 它的xy 取值范围都是0 1 默认只为(0.5 , 0.5)锚点在CALayer的中间

CALayer有一个控制图层角的曲率 属性conrnerRadius  ,默认情况下这个曲率只影响背景颜色不影响背景图片或是子图层 ,如果吧masksToBounds 设置为YES时图层里面的所有东西都会被截取。

CALayer的简单使用

  //改变形状

    UIView *myview = [[UIView alloc]initWithFrame:CGRectMake(10, 20, 100, 200)];

    myview.layer.backgroundColor = [UIColor orangeColor].CGColor;

    //边框的颜色

    myview.layer.borderColor = [UIColor greenColor].CGColor;

    //边框的宽度

    myview.layer.borderWidth = 5;

    //允许设置圆角

    myview.layer.masksToBounds = YES;

    //允许设置圆角

//    myview.clipsToBounds = YES;

    myview.layer.cornerRadius = 10;

    [self.window addSubview:myview];

    

    UIView *myview1 = [[UIView alloc]initWithFrame:CGRectMake(100, 250, 100, 200)];

    myview1.layer.backgroundColor = [UIColor greenColor].CGColor;

    [self.window addSubview:myview1];

    //通过transform这个key创建一个动画

    CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform"];

    //第一个:弧度  第二个:x  第三个:y  第四个:z

    basic.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(3.1415, 1.0, 0, 0)];//3D动画,旋转180,y为轴旋转

    basic.duration = 2;//持续时间

    basic.repeatCount = 2;//重复次数

    basic.cumulative = YES;//是否继续接着执行

//注意:动画是添加到layer上面

    [myview1.layer addAnimation:basic forKey:@"animation"];

    //注意:不能马上将动画移除

//    [myview1.layer removeAnimationForKey:@"animation"];

    //注意:两次动画会合并在一起执行

    CABasicAnimation *basic1 = [CABasicAnimation animationWithKeyPath:@"transform"];

    basic1.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(3.1415, 0, 0, 1.0)];

    basic1.duration = 2;

    basic1.repeatCount = 2;

    basic1.cumulative = YES;//是否继续接着执行

  

    [myview1.layer addAnimation:basic1 forKey:@"animatio1"];


自定义图层

    // 创建一个图层

    CALayer *layer = [CALayer layer];

    // 设置尺寸

    layer.bounds = CGRectMake(0, 0, 100, 100);

    // 设置位置

    layer.position = CGPointMake(100, 100);

    // 设置颜色

    layer.backgroundColor = [UIColor redColor].CGColor;

    // 设置内容

    layer.contents = (__bridge id)[UIImage imageNamed:@"imageName"].CGImage;

    [self.view.layer addSublayer:layer];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值