// 字符串
NSString *str = @"i love you";
// NSRange的用法
// NSRange r1 = NSMakeRange(2, 4);
// 结构体类型不能用*
// 查找某个字符串在str中的范围
NSRange rang = [str rangeOfString:@"jack"];
// 结构体类型访问结构体内部变量:结构体名.结构体内变量名(rang.location,rang.length),如果找不到返回NSNoFand == -1
NSLog(@"location=%ld, lenth=%ld", rang.location, rang.length);
// CGPoint -> 坐标(x,y)
// CGSize -> 宽度、长度(width,length)
// CGRect -> CGPoint和CGSize的结合(x, y, width, length)
// 使用这些CGPointEqualToPoint、CGRectContainsPoint等函数的前提是添加CoreGraphics框架
// CGPoint设置x,y坐标值,成为一个点
/*
系统CGPint结构体
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
*/
CGPoint p1 = CGPointMake(10, 20);
CGPoint p = NSMakePoint(10, 20);
// 将结构体转成字符串
NSString *str = NSStringFromPoint(p1);
// 原点
CGPointZero
// CGSize设置宽长, 成为一个按钮模块
/*
// 系统CGSize结构体
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
*/
CGSize s1 = CGSizeMake(34, 56);
// CGRect设置x,y,宽、长,定位一个按钮模块的位置
/*
系统CGRect结构体
struct CGRect {
CGPoint origin; // -> CGPoint
CGSize size; // -> CGSize
};
typedef struct CGRect CGRect;
*/
CGRect r1 = CGRectMake(12, 23, 34, 45);
// 比较一个触摸点是否在某个按钮范围内
BOOL p2 = CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(60, 45));
// 比较两个点是否是同一点
BOOL p3 = CGPointEqualToPoint(CGPointMake(12, 23), CGPointMake(12, 23));
// 比较两个按钮模块是否一样大
BOOL s2 = CGSizeEqualToSize(CGSizeMake(12, 34), CGSizeMake(12, 35));
// 比较2个按钮是否重叠
BOOL r2 = CGRectEqualToRect(CGRectMake(12, 23, 12, 34), CGRectMake(12, 34, 56, 23));