文档章节

IOS坐标系

行云流水8848
 行云流水8848
发布于 2015/10/16 13:47
字数 373
阅读 44
收藏 2

1、ios坐标系统

    ios以左上角为坐标原点(0,0),以原点向右侧为X轴正方向,原点下侧为Y轴正方向.

    1.1  CGPoint

    ios采用CGPoint来表示点在坐标系上X、Y位置。

    struct CGPoint {
         CGFloat x;
         CGFloat y;
    };

    我们可以通过CGPointMake(x,y)来创建一个坐标点:

    例:
        CGPoint point = CGPointMake(80,40)
    函数原型
        public func CGPointMake(x: CGFloat, _ y: CGFloat) -> CGPoint


  1.2 CGSize

    ios采用CGSize来表示视图的宽度和高度,即视图的大小。

    public struct CGSize {
         public var width: CGFloat
         public var height: CGFloat
         public init()
         public init(width: CGFloat, height: CGFloat)
    }    

    我们可以通过CGSizeMake(width,height)来创建一个矩形的大小,

    例:
        CGSize size = CGSizeMake(80,40)
        将创建一个宽度为80,高度为40的矩形大小。

    函数原型
        public func CGSizeMake(width: CGFloat, _ height: CGFloat) -> CGSize

  1.3 CGRect


    CGRect则是结合了CGPoint和CGSize,用来表示矩形的位置和大小。
    它的origin表示矩形右上角所在位置(CGPoint),size表示矩形的大小(CGSize)。
    public struct CGRect {
         public var origin: CGPoint
         public var size: CGSize
         public init()
         public init(origin: CGPoint, size: CGSize)
    }

2. frame, bounds, center属性


    frame:描述当前视图在其父视图中的位置和大小。

    bounds:描述当前视图在其自身坐标系统中的位置和大小。

    center:描述当前视图的中心点在其父视图中的位置。

3. 使用场景


    frame属性通常用来设置视图的大小和位置
   
    bounds属性比较少用

    center属性来改变(移动)视图的位置


© 著作权归作者所有

共有 人打赏支持
行云流水8848
粉丝 7
博文 318
码字总数 125594
作品 0
青岛
程序员
iOS 实现输入框跟随键盘自动上移

场景还原 有些时候在包含输入框的页面中,点击输入框输入会因键盘弹起而遮挡住一部分输入框,影响用户体验。iOS在默认情况下并不会处理这种问题,不过我们可以自己实现键盘弹起输入框自动上移...

还是不够辣
2017/04/12
0
0
iOS--OC--图片拉伸和尺寸变换,图片简单处理

图片拉伸和尺寸变换 图片拉伸 : - (UIImage )stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight; 一般 leftCapWidth = imageWidth .5f, top......

丶雨凡
2015/03/26
0
0
CoreText 实现图文混排

NSTextView和Attribued String 第一次接触苹果系的富文本编程是在写Mac平台上的一个输入框的时候,输入框中的文字可以设置各种样式,并可以在文字中间插入图片,好在Mac的AppKit中提供了NST...

Megan_zhou
2014/05/26
0
0
10个优秀Objective-C和iOS开发在线视频教程

如果你自己开发iOS应用,你肯定会发现网上有很多资源。学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写。我们从海量视频和学习网站中整理出了我们认为...

mingxun
2014/05/09
0
0
学习如何针对iOS 7进行开发?

  iOS 7已经发布了六个测试版,除了beta 6进行了小幅修正外,其他几个测试版都有不小的改动。昨天有消息说苹果将在9月10日发布iOS 7正式版,那么GM版很快将会与开发者见面。在iOS 7来临前夕...

fangzhou99
2013/09/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
2
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
2
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
48
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部