NSRange(location , length) 表示范围,里面有俩元素,一个是location便是位置,另一个是length长度
// 不常用,理解就好
NSRange r1 = {2, 4};
NSRange r2 = {.location =2, .length = 4}; //不用
// 开发中用这个,要求掌握
NSRange r3 = NSMakeRange(2, 4);
NSString *str = @"i lovde you";
// 查找某个字符串在str中的位置
// 如果找不到,length = 0;location等于一个常量NSNotFound
NSRange range = [str rangeOfString:@"love"];
NSLog(@"%ld - %ld",range.location, range.length);
NSPoint/CGPoint表示一个点,里面有double X和double Y.而CGPoint是跨平台的,常用这个
CGPoint p1 = NSMakePoint(10, 10);
NSPoint p2 = CGPointMake(199, 707); // 最常用的
NSPoint p3 = p1; // 可以互相使用
NSSize/CGSize表示一个UI元素尺寸,里面有double wight(宽)和double height(高).构造一个UI元素,常用这个
NSSize z1 = NSMakeSize(20, 10);
CGSize z2 = NSMakeSize(100, 20);
NSSize z3 = CGSizeMake(100, 30);
CGRect / NSRect (CGPoint CGSize) 表示位置里面有UI元素的尺寸和点
CGRect mySect(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
CGRect Sect;
Sect.origin.x = x;
Sect.origin.y = y;
Sect.size.height = height;
Sect.size.width = width;
return Sect;
}
// 开发中的调试
CGRect c1 = CGRectMake(10, 10, 20, 30);
NSLog(@"%f-%f-%f-%f",c1.origin.x, c1.origin.y, c1.size.width,c1.size.height);
// 也可以直接把结构体转成字符串,这样就不必书写上面的麻烦步骤了。
NSString *str = NSStringFromPoint(p1);
NSLog(@"%@",str);
// 将NSSize或者CGSize改成字符串输出
NSSize z1 = NSMakeSize(20, 10);
CGSize z2 = NSMakeSize(100, 20);
NSSize z3 = CGSizeMake(100, 30);
NSString *str1 = NSStringFromSize(z2);
NSLog(@"%@",str1);
// 由于开发中经常用到坐标原点或者尺寸原点
// CGPointzero == CGPointMake(0, 0)
// CGSizezero == CGSizezero(0, 0)
// 比较两个点是否相同(x, y)
BOOL b = CGPointEqualToPoint(CGPointMake(10, 9), CGPointMake(20, 9));
// 判断这个尺寸中是包不包涵这个点
BOOL b1 = CGRectContainsPoint(CGRectMake(10, 10, 20, 2), CGPointMake(10, 5));
使用这些函数需要添加CoreGraphics框架