您的位置:首页 > 产品设计 > UI/UE

UIView 中position 和anchorPoint 的了解 iOS

2016-03-18 21:22 309 查看
一般来说都是先介绍positon,在介绍anchorPoint。这里反过来介绍。

1、anchorPoint:

        从一个例子来入手,想象一下,把一张A4白纸用图钉订在书桌上,如果订的不是很紧的话,白纸就可以沿顺时针或逆时针方向绕着图钉旋转,这时候图钉就起着指点的作用。我们要解释的anchorPoint就相当于白纸上当图钉,它主要的作用就是用来作为变换的指点,旋转就死一种变换,类似的还有平移、缩放。

        继续,很明显,白纸的旋转形态随图钉的位置不同而不同,图钉订在白纸的正中间与左上角时分别就造成了两种旋转形态,这事有图钉(anchorPoint)的位置决定的。如何衡量图钉(anchorPoint)在白纸中的位置呢?在iOS中,anchorPoint点的值是用一种相对于bounds的比例值来确定的,在白纸的左上角、右下角,anchorPoint分别为(0, 0),  (1, 1),也就是说anchoPoint是在单位坐标空间(同时也是左手坐标系)中定义的。类似地,可以得出在白纸的中心点、左下角和右上角的anchorPoint为(0.5,
0.5),  (0, 1), (1, 0)。

      像UIView有superView与subView的概念一样,CALayer也有superLayer与layer的概念,前面说的白纸可以理解为layer,书桌可以理解为superLayer。如果各自以左上角为原点,则在图中有相对的两个坐标空间。

2、position:

        这时候可以大胆的猜测一下,position是不是就是anchorPoint在superLayer中的位置呢?答案是确定的,更确切的说,position是layer中的anchorPoint点在superLayer中的位置坐标。因此可以说,position点是superLayer的,anchorPoint点是相对于layer的,两者是相对不同的坐标空间的一个重合的点。

3、position 和 anchorPoint 的关系:

          anchorPoint 决定着CALayer身上的那个点会在position属性所指的位置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: