简单的理解position与anchorPoint

很多人都搞不清楚这两个点,其实这两个点还是不难理解的,用一句话就能概括

anchorPoint 表示这个点在 自身layer 中的位置,
position 表示这个点在父layer中的位置

 

1. anchorPoint: 锚点, 用很多人举过的例子 

    把一张A4白纸用图钉订在书桌上,如果订得不是很紧的话,白纸就可以沿顺时针或逆时针方向围绕图钉旋转,这时候图钉就起着支点的作用。我们要解释的anchorPoint就相当于白纸上的图钉钉的那个店,它主要的作用就是用来作为变换的支点,旋转就是一种变换,类似的还有平移、缩放,都说是围绕这个点来进行的,在白纸的左上角、右下角,anchorPoint分为为(0,0), (1, 1),也就是说anchorPoint是在单元坐标空间(同时也是左手坐标系)中定义的。类似地,可以得出在白纸的中心点、左下角和右上角的anchorPoint为(0.5,0.5), (0,1), (1,0)。

 

左边的图是iOS的坐标系,右边的图是OS X的坐标系

 

2. position:

    继续上面的例子,纸上有一个点,那么书桌上肯定也被钉了一个点,这个点就是position,position就是layer的anchorPosition这个点在父layer上的位置。

 

如果我们改变anchorPoint这个点,就相当于还在书桌原来的位置把这张纸钉一下(图钉在书桌上的位置不变),只不过纸上的那个点改变了而已

如果我们改变position这个点,就相当于把图钉和纸张一块拔出来(图钉在纸上的位置不变),在书桌的另一个位置在重新钉一次

 

到此大家应该能想象出来是个什么情形了吧,希望能借此给大家一点小小的帮助。

posted @ 2016-08-29 10:36  夏天没有雪  阅读(544)  评论(0编辑  收藏  举报