1 前言

在IOS中相信大家会经常跟一些bounds,frame之类的打交道,这不免会涉及坐标系统,今天我们就来介绍一下Coordinate System(坐标系)。

2 详述

坐标系统是定位,大小,转变,绘制可视化对象和定位用户事件的时候的双向的空间。IOS和OS X应用中根据定位点通过相较于一个共同的原点(0.0,0.0)的水平和垂直的轴线(x-轴,y-轴)的坐标系统,正值沿着坐标轴的方向增长;而负值沿着相反的方向增长。我们表达一个点在坐标空间,通过一对浮点数在去掉任何单位在设备空间中(例如像素)的用户空间单位。绘画经常发生在坐标空间的一个x-轴和y-轴坐标确定的扇形区域。

2.1 IOS中和OS X中坐标系统拥有不同方向

OS X:原点位于左下角,x-轴向右延伸,y-轴向上延伸。

IOS:原点位于左上角,x-轴向右延伸,y-轴向下延伸。

2.2 Windows和Views拥有他们自己的坐标系统

一个应用程序在任何显示的时候都拥有多重的坐标系统。Window在为了显示而被坐标系统定义的屏幕坐标进行定位和确定大小。Window自己代表了基本的对于通过它自己的Views绘画和事件处理坐标系。窗口中的每一个视图为绘制自己维持着他自己的局部坐标,这个坐标系统通过视图的bounds属性定义。视图的frame属性表达了它的位置和大小在其父视图的坐标系统中。视图可以轮流为其子视图提供基本的坐标系统用于定位和确定大小。

在AppKit和UIKit框架中都提供了在一个视图和另一个视图,视图和窗口,屏幕和窗口(OS X中)的坐标系间进行转化点和矩形区域的方法。一个应用程序在窗口坐标系统中定位鼠标,表格,手势和多重操作事件,但是可以简单的把他们转化成本地坐标系统。

我们还可以映射多个点从一个坐标空间到另一个通过已知的用来转换的双向空间的数组,通过转化,我们能够很容易的按比例缩放,旋转,平移内容在双向空间中。

3 结语

以上是所有内容,希望对大家有所帮助。

IOS深入学习(4)之Coordinate System的更多相关文章

  1. Coordinate System

    Coordinate System Introduction of Different Coordinate Systems Cartesian Coordinate System UI Coordi ...

  2. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  3. iOS阶段学习第一天笔记(Mac终端的操作)

    前言部分 原本从事的是.NET开发,一直在要不要转iOS 中犹豫徘徊,经过复杂的内心挣扎终于鼓起勇气辞职脱产学习iOS;希望通过四个月的 学习后能够拿到理想的薪资.以下是学习过程中的学习笔记,为了方便 ...

  4. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  5. ios网络学习------6 json格式数据的请求处理

    ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...

  6. iOS之学习资源收集--很好的IOS技术学习网站

    点击图片也能打开相关的网站: https://boxueio.com/skill/swift http://ios.b2mp.cn/ http://gold.xitu.io/welcome/?utm_ ...

  7. ios开发之OC基础-ios开发学习路线图

    本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...

  8. iOS手势学习UIGestureRecognizer & cocos2d 手势推荐

    iOS手势学习UIGestureRecognizer & cocos2d 手势推荐 手势识别类型: UILongPressGestureRecognizer  // 长按UIPanGestur ...

  9. 开源中国iOS客户端学习

    开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客    http://blog.csdn.net/column/details/xfzl-kykhd.html ...

随机推荐

  1. 【转】ARM Linux 3.x的设备树(Device Tree)

    原文网址:http://blog.csdn.net/21cnbao/article/details/8457546 1.    ARM Device Tree起源 Linus Torvalds在201 ...

  2. 计算机视觉库 SimpleCV

    SimpleCV首页.文档和下载 - 计算机视觉库 - 开源中国社区     计算机视觉库 SimpleCV 编辑/纠错    分享到     新浪微博腾讯微博    已用    +0    收藏 + ...

  3. 浅谈C++调用C#的DLL程序方法

    把C#编译成DLL或者Axtive控件,再由C调用!比如使用C++调用C#的DLL. SwfDotNet是.net下输出flash的类库.SwfDotNet是C#编写的,作者的C#水平,真是令我佩服. ...

  4. Hive 9、Hive 在表中添加正则匹配

    在Hive中还有一项比较好用的功能,也是非常重要的功能:在建表的时候可以不指定表的行.字段.列的分隔方式,通过给表指定一段正则表达式,让Hive自动去匹配: 1.创建表 CREATE TABLE ap ...

  5. jquery 鼠标图片经过效果

    <script> //鼠标图片经过效果 $(function(){ $(".jione_box ").css("background-color", ...

  6. python小记列表排序

    a=[('b',4),('a',7),('c',2)] 正向排序a.sort() 反向排序:a.sort(reverse=True) 对第二关键字排序 a.sort(lambda x,y:cmp(x[ ...

  7. Html中value和name属性的作用

    1.按钮中用的value 指的是按钮上要显示的文本  比如“确定”“删除”等 2.复选框用的value 指的是这个复选框的值 3.单选框用的value 和复选框一样 4.下拉菜单用的value 是列表 ...

  8. [j2ee][IDEA properties中文乱码解决]

    http://my.oschina.net/pengzai/blog/133908 在project settings - File Encoding,在标红的选项上打上勾,确定即可

  9. [core java学习笔记][第十一章异常断言日志调试]

    第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...

  10. simplify the life ECMAScript 5(ES5)中bind方法简介

    一直以来对和this有关的东西模糊不清,譬如call.apply等等.这次看到一个和bind有关的笔试题,故记此文以备忘. bind和call以及apply一样,都是可以改变上下文的this指向的.不 ...