常见的结构体 (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 = ;
range.length = ; range= (NSRange){, }; NSRange r = NSMakeRange(, );
CGPoint 和 NSPoint :用来表示二维平面的一个点
CGPoint 是NSPoint的一个别名
struct CGPoint {
CGFloat x; 点的x方向
CGFloat y; 点的y方向
}; 用法:
// 表示二维平面的一个点
CGPoint p1 = NSMakePoint( ,);
NSPoint p2 = CGPointMake(,); CGPoint c1 = { , };
CGSize 和 NSSize:用来表示平面的面积
struct CGSize {
CGFloat width; 宽
CGFloat height; 高
};
CGSize s1;
s1.width = ;
s1.height = ; // OC中特有的方式
CGSize s2 = CGSizeMake(, );
CGRect 和 NSRect:表示在平面上左上角是某个点的矩形区域
struct CGRect {
var origin: CGPoint // 表示矩形左上角的点
var size: CGSize // 表示矩形的大小
init()
init(origin origin: CGPoint, size size: CGSize)
}
CGRect r = {{, },{, }}; // OC特有方式
CGRect r1 = CGRectMake(, , , );
NSRect r2 = NSMakeRect(, , , ); // 打印方式
NSLog(@"r1 = %@", NSStringFromRect(r1));