CALayer的基本使用

作者: 大玲_ | 来源:发表于2015-05-17 19:25 被阅读1362次

    1.CALayer是核心动画的基础,可以做圆角、阴影、边框等效果。
    2.每个UIview内部都有一个Layer的属性。
    3.在实现核心动画时,本质上将CALayer中的内容转换成位图,从而便于图形硬件的操纵。
    4.在使用CALayer是要添加QuartzCore框架。
    5.UIKit 框架只能在IOS开发使用不能在MAC开发使用,但是Quartz 2D 是可以跨平台的,因此在使用颜色、image时要将结果进行转化。转化为CG·····的。
    6.修改图层相当于修改UIview的属性,即修改界面的属性。
    7.形变属性既可以使用形变函数制定,也可以使用keyPath指定。

    CALayer可以设置一下属性:

    bounds:宽度和高度。
    position:位置(默认为中心点,具体由anchorPoint决定)
    anchorPoint:锚点(x,y的范围是0-1)决定了position的含义。
    backgroundColor:背景颜色(CGcolorRef类型)
    borderColor:边框颜色(CGColorRef类型)
    borderWidth:边框宽度
    borderRadius:圆角半径
    content:内容

    transform可以调整CALayer的形变,包括:旋转、缩放、平移。
    transform属性的参数可以查询:CATransform。

    直接看代码:

    UIImage *image = [UIImage imageNamed:@"1.JPG"];
        UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
    
        [imageView setFrame:CGRectMake(50, 50, 200, 200)];
        
        [self.view addSubview:imageView];
        
        //1.圆角半径
        //提示imageview中 图层不止一个 如果要实现圆角效果 需要设置一个跟谁属性
        //setMasksToBounds  可以让imageview中所有的子图层跟谁imageview一起变化
        [imageView.layer setMasksToBounds:YES];
        imageView.layer.cornerRadius = 50.0f;
        
        //2.阴影
        //提示  如果设置了 setMasksToBounds属性 imageview的阴影属性无效
        [imageView.layer setShadowColor:[UIColor redColor].CGColor];
        [imageView.layer setShadowOffset:CGSizeMake(10.0, 10.0)];
        [imageView.layer setShadowOpacity:1.0f];
        
        //3.边框
        [imageView.layer setBorderColor:[UIColor blueColor].CGColor];
        [imageView.layer setBorderWidth:3.0f];
        
        //4.形变属性  在CAlyer中 形变属性是3d的  不再是2d的
        //注意  : 形变参数在使用set方法是  只能使用一种形变
        //4.1  平移属性
    //    [imageView.layer setTransform:CATransform3DMakeTranslation(0, 300, 0)];
    //    //4.2 缩放苏醒
    //    [imageView.layer setTransform:CATransform3DMakeScale(0.5, 0.5, 1.0)];
    //    //4.2旋转属性  通常在旋转时  使用z轴即可  要沿着那个轴转 就设置为1   x,y 旋转90为不可见状态
    //    [imageView.layer setTransform:CATransform3DMakeRotation(M_PI_4, 0, 0, 1)];
        
        //5.利用keyPath设置形变  但是属性不要出错  可以在文档中进行搜索(transform3D)
        //5.1平移
        [imageView.layer setValue:@-100 forKeyPath:@"transform.translation.x"];
        //5.2缩放
        [imageView.layer setValue:@0.5 forKeyPath:@"transform.scale"];
        //5.3旋转
        [imageView.layer setValue:@M_PI_2 forKeyPath:@"transform.rotation.z"];
    
    
    

    效果:

    D55EE72B-C656-4038-915D-B2A430F8D357.png

    相关文章

      网友评论

      本文标题:CALayer的基本使用

      本文链接:https://www.haomeiwen.com/subject/hczkqttx.html