IOS深入学习(4)之Coordinate System
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的更多相关文章
- Coordinate System
Coordinate System Introduction of Different Coordinate Systems Cartesian Coordinate System UI Coordi ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- iOS阶段学习第一天笔记(Mac终端的操作)
前言部分 原本从事的是.NET开发,一直在要不要转iOS 中犹豫徘徊,经过复杂的内心挣扎终于鼓起勇气辞职脱产学习iOS;希望通过四个月的 学习后能够拿到理想的薪资.以下是学习过程中的学习笔记,为了方便 ...
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- ios网络学习------6 json格式数据的请求处理
ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...
- iOS之学习资源收集--很好的IOS技术学习网站
点击图片也能打开相关的网站: https://boxueio.com/skill/swift http://ios.b2mp.cn/ http://gold.xitu.io/welcome/?utm_ ...
- ios开发之OC基础-ios开发学习路线图
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- iOS手势学习UIGestureRecognizer & cocos2d 手势推荐
iOS手势学习UIGestureRecognizer & cocos2d 手势推荐 手势识别类型: UILongPressGestureRecognizer // 长按UIPanGestur ...
- 开源中国iOS客户端学习
开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客 http://blog.csdn.net/column/details/xfzl-kykhd.html ...
随机推荐
- WinDriver的一些
http://blog.csdn.net/chuajiang/article/details/2115508
- Linux服务器挂死案例分析
问题现象: 在linux服务器上运行一个指定的脚本时,就会出现无数个相同进程的,而且不停的产生,杀也杀不掉,最后系统就陷入死循环,无法登陆,只能人工去按机器的电源键才可以.这够崩溃的吧? 问题分析过程 ...
- Asp.net MVC中的ViewData与ViewBag(转)
在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从 ...
- 使用WCF实现SOA面向服务编程—— 架构设计
原文地址:http://www.cnblogs.com/leslies2/archive/2011/03/29/1997889.html SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就 ...
- 自己写jstl标签解析long时间
数据库里存储的是long型的时间,现在想输出到jsp页面,由于使用的是jstl标签,而要显示的是可读的时间类型,找来找去有个fmt:formatDate可以转化,但是只能转date型,long型则不可 ...
- phpcms 缓存
PHPCMS设置和读取缓存文件 PHPCMS开发中经常用到读取文件缓存,比如常见的当前站点类别,是保存在缓存文件中的,读取的时候 用:$this->categorys = getcache(‘c ...
- Linux下redis的安装及用法
1.下载源代码包redis-2.8.21.tar.gz,并将其上传到指定文件夹/urs/src,然后对其进行解压: [root@Slave1pc src]# tar -xvf redis-2.8.21 ...
- [ReactJS] DOM Event Listeners in a React Component
React doesn't provide the listener to listen the DOM event. But we can do it in React life cycle: So ...
- Git 多人协作的工作模式
多人协作 148次阅读 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin. 要查看远程库的信息,用git rem ...
- MySQL 触发器的定义
-- Insert DELIMITER $$ USE `testdatabase`$$ DROP TRIGGER /*!50032 IF EXISTS */ `Trigger_XXX_INSERT`$ ...