在什么情况下,iOS上的坐标空间是(未翻录的)默认值?

时间:2017-01-04 02:28:48

标签: ios core-graphics cgrect

根据documentation for CGRect

  

在默认的Core Graphics坐标空间中,找到原点   在矩形的左下角,矩形延伸   朝右上角。如果上下文有一个   翻转坐标空间 - 通常是iOS上的情况 - 原点在于   左上角和矩形向右下方延伸   角。

我一直认为iOS上的坐标系是从左上角开始的,但在阅读之后,有意义的是它被翻转,而不是默认的坐标空间。您不会像在iOS上那样考虑笛卡尔图上的点,其中Y值的增加会向下移动,而不是向上移动。

文档说它经常出现这种情况,所以iOS上的情况何时不是这样?在Core Graphics默认的坐标空间是什么平台?

1 个答案:

答案 0 :(得分:3)

在iOS和UIKit中,原点位于左上角,正y值位于屏幕底部。

但对于较低级别的Quartz API,原点位于左下方,y值向上移动到屏幕顶部。

标题为Quartz 2D Programming Guide的<{3}}下的Drawing to a View Graphics Context in iOS中介绍了这一点。

  

整个UIKit使用的默认坐标系与Quartz使用的坐标系不同。在UIKit中,原点位于左上角,正y值指向下方。 UIView对象通过将原点转换为视图的左上角并通过将其乘以-1来反转y轴来修改Quartz图形上下文的CTM以匹配UIKit约定。有关修改坐标系统及其绘图代码含义的更多信息,请参阅Quartz 2D Coordinate Systems

所以“经常就是这种情况”就是在使用UIKit时。使用较低级别的Quartz API时情况并非如此。