常见的结构体 (NSPoint,CGPoint)、(NSRange,CGRange)、(NSSize,CGSize)
苹果官方推荐使用CG开头的结构体
NSRange是Foundation框架中常见的结构体它的定义如下:
typedef struct _NSRange
{
// 范围的起始位置
NSUInteger location;
// 范围的长度
NSUInteger length
}
NSUInteger的定义:
typedef unsigned int NSInteger;
typedef unsigned long NSUInteger;
NSRange创建的几种方式
NSRange range;range.location = 2;range.length = 3;range= (NSRange){3, 5};NSRange r = NSMakeRange(2, 4);
CGPoint 和 NSPoint :用来表示二维平面的一个点
CGPoint 是NSPoint的一个别名
struct CGPoint {CGFloat x; 点的x方向CGFloat y; 点的y方向
};
用法:
// 表示二维平面的一个点CGPoint p1 = NSMakePoint(10 ,14);NSPoint p2 = CGPointMake(11,20);CGPoint c1 = { 10, 12};
CGSize 和 NSSize:用来表示平面的面积
struct CGSize {CGFloat width; 宽CGFloat height; 高
};
CGSize s1;s1.width = 10;s1.height = 20;// OC中特有的方式CGSize s2 = CGSizeMake(14, 13);
CGRect 和 NSRect:表示在平面上左上角是某个点的矩形区域
struct CGRect {var origin: CGPoint // 表示矩形左上角的点var size: CGSize // 表示矩形的大小init()init(origin origin: CGPoint, size size: CGSize) }
CGRect r = {{0, 1},{20, 30}};// OC特有方式CGRect r1 = CGRectMake(1, 2, 10, 60);NSRect r2 = NSMakeRect(2, 5, 80, 90);// 打印方式NSLog(@"r1 = %@", NSStringFromRect(r1));