245 字
1 分钟
如何理解 CALayer 下的 `position`, `anchorPoint`
举例加深对 position,anchorPoint 概念的理解:你有一张相片,现在需要用大头针将照片钉在墙上。
在这个场景下:
position:你在墙上找的一个点,用红笔标记下anchorPoint大头针穿过照片的点,用红笔标记下
当你钉完照片后,大头针会穿过照片上标记的点,并钉在墙上标记的点上。即:这两个点最终「重合」了。
那么现在照片在墙上的坐标是什么?
position用的是墙的坐标,绝对单位(点),比如你标记在墙上的点是(100,50),那么坐标就是(100,50)anchorPoint用的是照片自己的坐标,且为一个比例单位(0~1),比如:- (0,0):就是照片的左上角位置
- (1,1):就是照片的右下角位置
- (0.5,0.5):就是照片自己的中心点位置
所以
anchorPoint需要换算
于是,照片在墙上的坐标是:
frame.origin.x = position.x - anchorPoint.x * bounds.widthframe.origin.y = position.y - anchorPoint.y * bounds.height如何理解 CALayer 下的 `position`, `anchorPoint`
https://ihsiao.com/posts/apple/calyer-paramters/