Position and anchorPoint in iOS Layer

204 阅读1分钟

突然理解了"position is relative to anchorPoint"的含义 position的值是相对于anchorPoint而言的。相对于anchorPoint的位置而言的。

其实,所有矢量变换transform都是相对于anchorPoint这个锚点而言的。当然,改变position其实就是矢量变换中的平移。

通常使用该属性的路子是,设定好锚点之后,再进行矢量变换。

如果先修改了position再修改锚点会怎么样?这是我之前一直不理解的地方--修改锚点后,为啥position值没变,图层位置为啥变了呢?

我现在对该问题的理解是,单纯的修改锚点不符合先anchorPoint后变换的路子,但最终得保证在position不变的情况下仍然有新anchorPoint后的效果。所以只有移动图层到新的位置即以新anchorPoint为锚点原position值的位置。

本质上可能就像《彻底理解position与anchorPoint》那篇文章猜测的,这些属性之间是有可用数学公式表达的关系的。但这个公式并不容易记住,加深对"relative to"含义的理解或许更有用。