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 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)
BOOL b = CGPointEqualToPoint(CGPointMake(10, 9), CGPointMake(20, 9));// 判断这个尺寸中是包不包涵这个点
BOOL b1 = CGRectContainsPoint(CGRectMake(10, 10, 20, 2), CGPointMake(10, 5));