(一)要掌握这些的运用
NSRange(location length) ---范围 range:范围
NSPoint\(相当于)CGPoint ---点
NSSize\CGSize ---尺寸
NSRect\CGRect (CGPint CGSize) ---相当于一个矩形
其实,看官方文档更能清楚,这些的用法,需要声明方法就Jump to去看,在此,仅仅列出简单用法,作为了解
(二)代码示例
1.
void range() { // @"i love oc" // love的范围 //NSRange r1 = {2, 4}; // 不用 //NSRange r2 = {.location = 2, .length = 4}; // 不用 //NSRange r3 = NSMakeRange(2, 4); // 需要掌握,我们一般用这个,上面的两个可读性差不用 NSString *str = @"i love oc"; // 查找某个字符串在str中的范围 // 如果找不到,length=0,location=NSNotFound==-1 NSRange range = [str rangeOfString:@"java"]; NSLog(@"loc = %ld, length=%ld", range.location, range.length); }
2.
void psr() { CGPoint p1 = NSMakePoint(10, 10); NSPoint p2 = CGPointMake(20, 20); // 最常用 NSSize s1 = CGSizeMake(100, 50); NSSize s2 = NSMakeSize(100, 50); CGSize s3 = NSMakeSize(200, 60); CGRect r1 = CGRectMake(0, 0, 100, 50); // 最常用(下面两个作为了解) CGRect r2 = { {0, 0}, {100, 90}}; CGRect r3 = {p1, s2}; // 使用CGPointZero等的前提是添加CoreGraphics框架 CGRect r4 = {CGPointZero, CGSizeMake(100, 90)}; // CGSizeZero // CGRectZero // 表示原点 // CGPointZero == CGPointMake(0, 0) // 将结构体转为字符串 //NSString *str = NSStringFromPoint(p1); //NSString *str = NSStringFromSize(s3); NSString *str = NSStringFromRect(r1); NSLog(@"%@", str); // 这样一个个打印很麻烦。所以,我们会---将结构体转为字符串 // NSLog(@"x=%f, y=%f, width=%f, height=%f", r1.origin.x, r1.origin.y, r1.size.width, r1.size.height); } // CGRect myRect(CGFloat x, CGFloat y, CGFloat width, CGFloat height) //{ // CGRect rect; // rect.origin.x = x; // rect.origin.y = y; // rect.size.width = width; // rect.size.height = height; // // return rect; //}
3.了解
#import <Foundation/Foundation.h> int main() { /* NSRange(location length) NSPoint\(相当于)CGPoint NSSize\CGSize NSRect\CGRect (CGPint CGSize) */ // 使用这些CGPointEqualToPoint、CGRectContainsPoint等函数的前提是添加CoreGraphics框架 // NextStep Foundation // 比较两个点是否相同(x、y) BOOL b = CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10)); //CGRectEqualToRect(<#CGRect rect1#>, <#CGRect rect2#>) //CGSizeEqualToSize(<#CGSize size1#>, <#CGSize size2#>) // x (50, 150) y (40 , 90) BOOL b2 = CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(60, 45)); NSLog(@"%d", b2); return 0; }
时间: 2024-10-08 10:23:15