iOS开发关于位置的三个结构

做iOS开发,我们需要指定控件,文本,图片等显示在视图的位置,那么我们不可避免的和下面的三个结构打交道

CGPoint

CGSize

CGRect

注意:这三个是结构,不是类,所以在使用的时候一般不用指针。下面我们看这三个结构的定义。

struct CGPoint {

 CGFloat x;

 CGFloat y;

};

typedefstructCGPoint CGPoint;

/* Sizes. */


struct CGSize {

  CGFloat width;

  CGFloat height;

};

typedefstructCGSize CGSize;


/* Rectangles. */


struct CGRect {

  CGPoint origin;

  CGSize size;

};

typedefstructCGRect CGRect;

CGRect和前两者的关系如下图所示:

iOS开发关于位置的三个结构_第1张图片

这三个结构分别有一个对应的生成函数:


生成函数 例子
CGPointMake (x, y) CGPoint point = CGPointMake (100.0, 200.0);

point.x = 300.0;

point.y = 30.0;

CGSizeMake (width, height)

CGSize size = CGSizeMake (42.0, 11.0);

size.width = 100.0;

size.height = 72.0;

CGRectMake (x, y, width, height)

CGRect rect = CGRectMake (100.0, 200.0,

                          42.0, 11.0);

rect.origin.x = 0.0;

rect.size.width = 50.0;


在iOS编程中,坐标系统说明如下:

不论设备的方向如何,原点一定在屏幕的左上角,Y轴是从上到下,依次变大,X轴是从左到右,依次变大。

需要说明的几点

1.坐标和长度都是float型,

2.你可以指定一个屏幕外的值,甚至是负值,这个时候把屏幕想像成位于一个笛卡儿坐标系中即可,不过和普通的笛卡儿坐标系不同的是,第一象限在右下部。


你可能感兴趣的:(ios,编程,struct,float)