做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和前两者的关系如下图所示:
这三个结构分别有一个对应的生成函数:
生成函数 | 例子 |
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.你可以指定一个屏幕外的值,甚至是负值,这个时候把屏幕想像成位于一个笛卡儿坐标系中即可,不过和普通的笛卡儿坐标系不同的是,第一象限在右下部。