- UIView:
frameboundscenter CALayer:
frameboundsposition- frame : 代表了图层外部坐标(在父视图上占据的空间)
- bounds: 是内部坐标({0,0},通常是当前图层的左上角)
- center 视图的中心点
- position 代表当前图层相对于图层的锚点(
anchorPoint)所在父层中的位置 frame属性是依据boundspositiontransform计算而得的,其中的一个值发生改变,frame也会改变,反之亦然- 当对图层做变换(旋转或缩放)的时候,
frame实际上代表了覆盖在图层旋转之后的整个轴对齐的矩形区域,此时frame的宽高和bounds的宽高不一样
- anchorPoint 锚点,是用来决定当前图层 (
CALayer)自身上的哪个点会在position属性所指的位置,以自身左上角为原点(0 ,0),默认值是(0.5,0.5),范围是(0~1)
举例说明
- 添加一个绿色图层到蓝色图层上
- 然后具体绿色图层要显示到什么位置,由绿色图层的position决定,这里设置为(100,100)
- 具体把绿色图层的哪个点移动到(100,100),由自身的锚点决定,就像往墙上钉相框(摆的位置不考虑地心引力)

CAlayer独有的Z坐标系
- 和
UIView的二维坐标系不同,CALayer存在于一个三维空间中,它有俩个特有属性zPosition和anchorPiontZ,俩个都是浮点类型 - 常用语图层的显示顺序,通常图层是根据它的子图层
sublayers出现顺序来绘制的 - 画家算法 : 一个画家在墙上作画,后被绘制的图层将会遮住之前的图层

- 通过增加图层的
zPosition把图层前置,设置为0.1或者0.000001都可以,但是最好不要这样,避免由于浮点型四舍五入的计算造成不必要的麻烦
- 和