美文网首页tom
UIView、NSView、Quartz2d及CALayer的坐

UIView、NSView、Quartz2d及CALayer的坐

作者: yehkong | 来源:发表于2017-07-30 13:59 被阅读44次

    序言:我们在UI界面布局时,绘图渲染是必须要用到坐标系,只有根据坐标系才能完成布局。苹果软件开发坐标系统跟我们平时生活中的坐标系还是不一样的,下面总结和梳理一下。

    • UIView的坐标系是左手坐标系,即坐标原点在屏幕左上角,这也是我们iOS开发运用最多的。
    • NSView的坐标系是右手坐标系,即坐标原点在屏幕左下角。

      另外MAC开发中有一个方法:- (BOOL)isFlipped; 这个方法默认返回NO,及坐标原地在屏幕左下角。重写该方法并返回YES,后便变成了左手坐标系。

    • Quartz 2d是跨平台的二维绘图引擎,其参照的坐标是右手坐标系,及原点在屏幕左下角。

      我们在iOS开发中,需要通过以下方法进行坐标转换,才能准确绘制出图形。

       CGContextTranslateCTM(context, 0, height);//1. 坐标往下移动屏幕的高度
       CGContextScaleCTM(context, 1.0, -1.0);//2. 坐标以X轴翻转
      

      如今UIKit的高层方法已经为我们做了坐标变换的工作,比如UIImage的drawInRect的方法等。

    • CALayer的坐标系比较特殊,在iOS系统中是左手坐标系,坐标原点在左上角;在MAC OS中是右手坐标系,坐标原点在左下角。

    相关文章

      网友评论

        本文标题:UIView、NSView、Quartz2d及CALayer的坐

        本文链接:https://www.haomeiwen.com/subject/qsgflxtx.html