一.NSRange
1.NSRange是一个表示范围的结构体。
typedef struct _NSRange {
NSUInteger location; //表示位置
NSUInteger length; //表述长度
} NSRange;
2.NSRange结构体里面有2个成员变量(unsigned long),一个表示位置(location),一个表示程度(length)。
使用范围:
(1)字符串:字符串位置(location)从0开始依次递增,长度(length)表示从这个位置开始多少长度。
(1)数组:数组的位置(location)也是从0开始依次递增,长度(length)表示从这个位置开始多少个(长度)元素个数。
3.NSRange的初始化
(1)像C语言数组一样直接 = {location的值,length的值}。
(2)和C语言一样用下标赋值 = {.location = 值,.length = 值}。
(3)前面二种方法基本不用,第三种方法最常用(用函数NSMakeRange):= NSMakeRange(loc的值,len的值)。
4.对象方法rangOfString(查找后面字符串在这个字符串对象中得范围)
[字符串对象 rangOfString:OC字符串],这个方法的返回值是NSRange类型。
如果这个字符串不在这个字符串对象里面,则会返回NSRange中loc = NSNotFound(int -1) ,length = 0。
5.NSStringFormRange函数
NSStringFormRange(NSRange变量)可以将NSRange变量转变成字符串方便输出,打印:{location的值,length的值}。不转变成字符串输出只能把结构体里面的成员变量一个一个输出。
二.NSPoint(CGPoint)
NS和CG开头的都是同一个类型的结构体,开发中一般用CG开头的,因为CG开头的是跨平台的。下面所要结构体都用CG开头。
1.CGPoint表示的是一个点(例如屏幕上的点,就是坐标点)
typedef struct _NSPoint {
CGFloat x;
CGFloat y;
} NSPoint;
3.初始化方式
(1)C语言中结构体的2中初始化方式(不用)
(2)用函数CGPointMake或NSMakePoint初始化 = CGPointMake(x的值,y的值)。
4.NSStringFormPoint函数
NSStringFormPoint(CGPoint变量)可以将CGPoint变量转变成字符串方便输出,打印:{x的值,y的值}。
5.CGPointZero表示原点(0,0),即CGPointMake(0,0)。
三.NSSize(CGSize)
1.CGSize表示的是任意一个平面矩形(屏幕上的一个有长宽的矩形)
typedef struct _NSSize {
CGFloat width; // 宽
CGFloat height; // 高
} NSSize;
2.CGSize有2个double类型的成员变量,一个表示屏幕的宽,一个表示屏幕的高。
3.初始化方式
(1)C语言中结构体的2中初始化方式(不用)
(2)用函数CGSizeMake或NSMakeSize初始化 = CGSizeMake(宽的值,高的值)。
4.NSStringFormSize函数
NSStringFormSize(CGSize变量)可以将CGSize变量转变成字符串对象方便输出,打印:{宽的值,高的值}。
5.CGSizeZero表示一个点,即CGSizeMake(0,0)。
1.CGRect表示的是一个选定的平面矩形(屏幕上的从某一点开始的矩形就是指定平面上的矩形)
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
2.CGRect有2个结构体类型的成员变量,一个表示屏幕上德一点,一个表示屏幕上的矩形(任意)。
3.初始化方式
(1)C语言中结构体的2中初始化方式(不用)
(2)用函数CGRectMake或NSMakeRect初始化 = CGRectMake(点的x,点的y,矩形的宽,矩形的高)。
4.NSStringFormRect函数
NSStringFormRect(CGRect变量)可以将CGRect变量转变成字符串对象方便输出,打印:{{{x的值,y的值},{宽的值,高的值}}
5.CGRectZero表示一个原点,即CGRectMake(0,0)。
四.函数
1.比较两个点是否相同,返回值是BOOL型,相同返回YES,不相同返回NO:
CGPointEqualToPoint(CGPoint变量1,CGPoint变量2)。
2.比较两个矩形大小是否相同,返回值是BOOL型,相同返回YES,不相同返回NO:
CGPointEqualToSize(CGSize变量1,CGSize变量2)。
3.比较两个矩形位置和大小是否都相同,返回值是BOOL型,相同返回YES,不相同返回NO:
CGPointEqualToRect(CGRect变量1,CGRect变量2)。
4.判断一个点是否在这个指定位置矩形内,返回值是BOOL型,是返回YES,不在则返回NO
CGRectContainsPoint(CGRect变量,CGPoint变量)。
五.注意:
1.使用这些CGPointEqualToPoint、CGRectContainsPoint等函数的前提是添加CoreGraphics框架。
2.使用CGPointZero等的前提是添加CoreGraphics框架。