• 图层CALayer的使用


    1、图层的意义
    当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘制完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示。
     
    2、经常使用的属性
    self.view.layer.borderWidth = 20;//设置边框的宽度为20
    self.view.layer.borderColor = [UIColor redColor].CGColor;//设置边框的颜色
    self.view.layer.cornerRedius = 10;//设置边框的圆角率
    aView.layer.masksToBounds = YES;//设置超过主图层的部分裁剪掉
    aView.layer.contents = (id)[UIImage imageNamed:@"87.jpg"].CGImage;//在图层上添加一个图片
     
    myImageView.layer.shadowColor = [UIColor blackColor].CGColor;//设置阴影的颜色
    myImageView.layer.shadowOpacity = 0.8;//设置阴影的偏移量,如果为正数代表着向右、向下
    myImageView.layer.shadowOffset = CGSizeMake(10, 10);//设置阴影的透明度(0~1,0为完全透明)
     
     
    3、注意事项
    (1)设置的边框都是内边框,即是向内部延伸的。
    (2)往图层上设置的image不是展示在主图层上的,而是显示在子图层上的。可以设置超出主图层色部分裁剪掉。
    (3)设置阴影,不光要设置阴影的颜色,还应该要设置阴影的偏移量和透明度。因为如果不设置偏移量的话,那么喝layer完全重叠,且默认透明度为0(即完全透明)。
    (4)如果设置了masksToBounds为yes,则设置阴影就不会有显示效果了。
     
    4、图层的形变属性(与view的形变属性不一样)
    /**
    形变属性,在CALayer中形变属性是3D的,在UIView中形变是2D的
    注意:形变参数在使用set方法时,只能使用一种形变
    */
    // 平移属性
    [self.alayer2 setTransform:CATransform3DMakeTranslation(0, 300, 0)];
    // 缩放属性
    [self.alayer2 setTransform:CATransform3DMakeScale(0.5, 0.5, 1.0)];
    // 旋转属性,通常在旋转时使用z轴即可。要沿着哪个轴转,就设置对应的值为1。x,y旋转90为不可见状态
    [self.alayer2 setTransform:CATransform3DMakeRotation(M_PI_4, 0, 0, 1)];
     
    /**
    利用keyPath设置形变 但是属性不要出错 可以在文档中进行搜索(transform3D)
    */
    // 平移
    [self.alayer2 setValue:@-100 forKeyPath:@"transform.translation.x"];
    // 缩放
    [self.alayer2 setValue:@0.5 forKeyPath:@"transform.scale"];
    // 旋转
    [self.alayer2 setValue:@M_PI_2 forKeyPath:@"transform.rotation.z"];
  • 相关阅读:
    BeanPostProcessor后置处理器原理以及ApplicationListener原理
    SpringCloud之服务注册与发现Eureka+客户端Feign
    AJPFX关于TreeSet集合的介绍
    AJPFX:关于面向对象的封装
    AJPFX总结Java 类与对象的初始化
    AJPFX关于增强for的概述和使用(foreach)
    AJPFX总结泛型概念和使用
    AJPFX简述可变参数概述和使用
    AJPFX关于JAVA StringBuffer的用法总结
    AJPFX关于Collection 集合的表述
  • 原文地址:https://www.cnblogs.com/cchHers/p/8712199.html
Copyright © 2020-2023  润新知