# iOS(CGGeometry)几何类方法总结 原

## iOS开发几何类方法总结

CGGeometry.h文件是用C语言实现的一个封装了许多常用几何方法的文件。

### 一、几个常用结构体

struct CGPoint {

CGFloat x;

CGFloat y;

};

struct CGSize {

CGFloat width;

CGFloat height;

};

struct CGVector {

CGFloat dx;

CGFloat dy;

};

struct CGRect {

CGPoint origin;

CGSize size;

};

### 二、几个系统定义的量

const CGPoint CGPointZero

const CGSize CGSizeZero

const CGRect CGRectZero

const CGRect CGRectNull

const CGRect CGRectInfinite

### 三、一些常用方法

CGPoint CGPointMake(CGFloat x, CGFloat y);

CGSize CGSizeMake(CGFloat width, CGFloat height);

CGVectorMake(CGFloat dx, CGFloat dy);

CGRect CGRectMake(CGFloat x, CGFloat y, CGFloat width,

CGFloat height);

CGFloat CGRectGetMinX(CGRect rect);

CGFloat CGRectGetMidX(CGRect rect);

CGFloat CGRectGetMaxX(CGRect rect);

CGFloat CGRectGetMinY(CGRect rect);

CGFloat CGRectGetMidY(CGRect rect);

CGFloat CGRectGetMaxY(CGRect rect);

CGFloat CGRectGetWidth(CGRect rect);

CGFloat CGRectGetHeight(CGRect rect);

bool CGPointEqualToPoint(CGPoint point1, CGPoint point2);

bool CGSizeEqualToSize(CGSize size1, CGSize size2);

bool CGRectEqualToRect(CGRect rect1, CGRect rect2);

CGRect CGRectStandardize(CGRect rect);

bool CGRectIsEmpty(CGRect rect);

CGRectIsNull(CGRect rect);

bool CGRectIsInfinite(CGRect rect);

CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy);

CGRect CGRectIntegral(CGRect rect)

CGRect CGRectUnion(CGRect r1, CGRect r2);

CGRect CGRectIntersection(CGRect r1, CGRect r2);

CGRect CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy);

void CGRectDivide(CGRect rect, CGRect *slice, CGRect *remainder,

CGFloat amount, CGRectEdge edge);

```typedef CF_ENUM(uint32_t, CGRectEdge) {
//从x的最小处进行垂直分割
CGRectMinXEdge,
//从y的最小处进行水平分割
CGRectMinYEdge,
//从x最大处进行垂直分割
CGRectMaxXEdge,
//从y最大处进行水平分割
CGRectMaxYEdge
};```

2、slice和remainder是地址。

3、举例如下，将会分割出两个矩形分别为(40,0,60,100)(0,0,40,100);

```CGRect rect = CGRectMake(0, 0, 100, 100);
CGRect slice ;
CGRect remainder;
CGRectDivide(rect, &slice, &remainder, 60, CGRectMaxXEdge);```

bool CGRectContainsPoint(CGRect rect, CGPoint point);

bool CGRectContainsRect(CGRect rect1, CGRect rect2);

bool CGRectIntersectsRect(CGRect rect1, CGRect rect2);

CFDictionaryRef CGPointCreateDictionaryRepresentation(CGPoint point);

bool CGPointMakeWithDictionaryRepresentation(CFDictionaryRef dict,

CGPoint *point);

CFDictionaryRef CGSizeCreateDictionaryRepresentation(CGSize size);

bool CGSizeMakeWithDictionaryRepresentation(CFDictionaryRef dict,

CGSize *size) ;

CFDictionaryRef CGRectCreateDictionaryRepresentation(CGRect);

bool CGRectMakeWithDictionaryRepresentation(CFDictionaryRef dict,

CGRect *rect);

0 条评论

## 相关文章

### UITableViewController和延时执行、自定义控件

1、在UITableViewController中，self.view就是self.tableView, 两个对象的指针地址是一样的

14040

33020

15120

28960

622100

### 第49天：封装自己的scrollTop

scrollTop和scrollLeft scrollTop 被卷去的头部 当滑动滚轮浏览网页的时候，网页隐藏在屏幕上方的距离 二、页面滚动效果事件 windo...

14410

12640

25130

50150

37970