美文网首页
第3章 图层几何学

第3章 图层几何学

作者: cdd48b9d36e0 | 来源:发表于2018-09-08 22:26 被阅读0次

    3.1 布局

    1. UIView的center属性和CALayer的position属性对应,且代表的值都一样
    2. frame和center(position)都是外部坐标,bounds是内部坐标
    3. “图层做变换的时候,比如旋转或者缩放,frame实际上代表了覆盖在图层旋转之后的整个轴对齐的矩形区域,也就是说frame的宽高可能和bounds的宽高不再一致了”

    3.2 锚点(这篇文章讲得很清楚

    锚点anchorPoint的最大作用就是结合position来确定子图层在父图层的位置,比起计算frame.origin要方便得多

    1. 先设置自身的anchorPoint(坐标系统为单位),这个点就会代表以后position所在的那个点
    2. 然后去父坐标系中确定position想代表的那个点

    3.3 坐标系

    1. 和UIView一样,图层也可以转换坐标系
    2. Z坐标轴
      和UIView严格的二维坐标系不同,CALayer存在于一个三维空间当中。除了我们已经讨论过的position和anchorPoint属性之外,CALayer还有另外两个属性,zPosition和anchorPointZ。zPosition的两大功能就是一改变图层的显示顺序和二CATransform3D变换(在三维空间移动和旋转图层)
    @interface ViewController ()
    
    @property (nonatomic, weak) IBOutlet UIView *greenView;
    @property (nonatomic, weak) IBOutlet UIView *redView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        //不需要增加太多,视图都非常地薄,所以给zPosition提高一个像素就可以让绿色视图前置,当然0.1或者0.0001也能够做到,但是最好不要这样,因为浮点类型四舍五入的计算可能会造成一些不便的麻烦
        self.greenView.layer.zPosition = 1.0f;
    }
    @end
    

    注意:zPosition可以明显改变屏幕上图层的顺序,但不能改变事件传递的顺序

    相关文章

      网友评论

          本文标题:第3章 图层几何学

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