美文网首页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的坐

    序言:我们在UI界面布局时,绘图渲染是必须要用到坐标系,只有根据坐标系才能完成布局。苹果软件开发坐标系统跟我们平时...

  • CALayer与UIView的区别

    CALayer与UIView的区别 基础 CALayer的定义 CALayer的基础 CALayer和UIView...

  • 问题汇总

    1、UIView和CALayer区别UIView和CALayer的区别.UIView相对于CAlayer来说就多了...

  • UI视图相关

    1.事件传递及相应 (1)UIView及CALayer UIView为其提供内容,以及负责触摸等事件,参与视图事件...

  • UIView和CALayer

    1. UIView和CALayer CALayer负责显示内容contents UIView为CALayer提供现...

  • UIView和CALayer

    UIView和CALayer和有什么关系 UIview中有个属性layer,是CALayer类型。 CALayer...

  • UIView和CALayer

    UIView和CALayer 1: 从框架来说 CALayer 基于 QuartzCore 框架 UIView 基...

  • CALayer- bounds、position、anchorP

    CALayer 每个UIView都有一个根CALayer,UIView本身没有显示的功能,是靠CALayer进行绘...

  • iOS简书修道第一天

    一、CALayer和UIView的认识 1、CALayer是UIView的渲染层,他比UIView更轻量,UIVi...

  • iOS UIView视图事件传递和相应

    UIView 和 CALayer 有什么区别 UIView包含CALayer 的layerUIView 对 CAL...

网友评论

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

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