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. WPF笔记(2.9和2.10)——Layout

    原文:WPF笔记(2.9和2.10)--Layout 2.9讲的是,如果内部设定超过容器大小,怎么办?StackPanel会裁剪越界部分DockPanel和Grid会智能判断,从而决定换行. 2.10 ...

  2. 【转】Notepad++ 快捷键 大全 官方整理过来的

    原文网址:http://www.lianyue.org/2011/756/ Ctrl+C 复制Ctrl+X 剪切Ctrl+V 粘贴Ctrl+Z 撤消Ctrl+Y 恢复Ctrl+A 全选Ctrl+F 键 ...

  3. 2015第14周日WebSocket

    清明时节雨纷纷,路上行人欲断魂,借问酒家何处是?牧童遥指杏花村.每次清明都不禁想起杜牧这首诗缅怀先人,此时第一句写时间天气,第二句写人物心情,第三句写解决方法,第四句给出解决方案,脍炙人口. 刚没事看 ...

  4. 简单实用后台任务执行框架(Struts2+Spring+AJAX前端web界面可以获取进度)

    使用场景: 在平常web开发过程中,有时操作员要做一个后台会运行很长时间的任务(如上传一个大文件到后台处理),而此时前台页面仍需要给用户及时的进度信息反馈,同时还要避免前台页面超时. 框架介绍: 本架 ...

  5. Majority Element 解答

    Solution 1 Naive way First, sort the array using Arrays.sort in Java. Than, scan once to find the ma ...

  6. hdu4453-Looploop(伸展树)

    题目有很多图,不好粘贴..... 题意:给出N个数和K1,K2的值,最开始指针指向第一个数,有6种操作 add x : 给前K2个数都增加x reverse : 翻转前K1个数 insert x : ...

  7. 表单验证插件jquery.validate的使用方法演示

    jQueryValidate表单验证效果 jquery.validate验证错误信息的样式控制 <!--validate验证插件的基础样式--> input.error{border: 1 ...

  8. Oracle表、列、约束的操作

    获得有关表的信息 可以直接DESCRIBE DESC[RIBE] table_name; 可以通过数据字典 SELECT * FROM user_tables WHERE table_name =xx ...

  9. SQL FOR XML PATH 用法

    FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...

  10. 1.iOS第一个简单APP

    大纲: iOS系统发展 UI和OC 简单的APP程序 程序的生命周期   1.iOS的系统发展 从1983年OC程序开始发展到2015年,30多年的时间,但这依然不是一个十分完善的语言,可以说现在都没 ...