view的坐标系

2020-03-31  本文已影响0人  叫我魏大川

温故而知新
view

frame(x1, y1, w, h)
frame中的x1, y1, 是描述相对于父视图坐标系的坐标。
(x1+1, y1+1) = 向右下各移动一个单位。(影响自身位置)

bounds(x2, y2, w, h)
x2, y2,描述的是相对于自身坐标系的坐标。
(x1-1, y1-1) = 向右下各移动一个单位。(影响子视图位置)

layer

view的frame和bounds都是由layer的frame、 position、anchorPoint计算而来的。
position规定本layer中的anchorPoint在父layer中的位置。(view负责内容和事件,layer主要负责显示)
anchorPoint 是比例,范围是0-1。规定的是本layer内部哪个点作为起始点来响应position。
position,anchorPoint 二者相互不影响。但是会影响frame中的orgain。

三者关系
frame.origin.x = position.x - anchorPoint.x * bounds.size.width;
frame.origin.y = position.y - anchorPoint.y * bounds.size.height;

参考 https://www.jianshu.com/p/2f8962055f21

上一篇下一篇

猜你喜欢

热点阅读