---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
Foundation中几个常用的用来表示范围,坐标,点,大小的结构体:
NSRange(location length)
NSPoint\CGPoint
NSSize\CGSize
NSRect\CGRect(CGPoint CGSIze)
----------------------------------------------------------------------------------------------------------------------------------------------------------
一、NSRange(location length):表示一个范围(起始位置,长度)
例如:
<span style="font-size:18px;">#import <Foundation/Foundation.h>
int main() {
//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);
return 0;
}</span>
----------------------------------------------------------------------------------------------------------------------------------------------------------
二、NSPoint\CGPoint:表示一个点的坐标(X,Y)
例如:
<span style="font-size:18px;">#import <Foundation/Foundation.h>
int main() {
CGPoint p1 = NSMakePoint(10, 10);//定义一个点,参数为X,Y
NSPoint p2 = CGPointMake(20, 20);// 最常用
// 表示原点
// CGPointZero == CGPointMake(0, 0);
NSLog(@"%@,%@",NSStringFromPoint(p1),NSStringFromPoint(p2));
return 0;
}</span>
----------------------------------------------------------------------------------------------------------------------------------------------------------
三、NSSize\CGSize:表示一个大小(weight,height)
例如:
<span style="font-size:18px;">#import <Foundation/Foundation.h>
int main() {
NSSize s1 = CGSizeMake(100, 50);
NSSize s2 = NSMakeSize(100, 50);
CGSize s3 = NSMakeSize(200, 60);
//快速输出一个对象值,可以把这个对象转换成字符串输出
NSLog(@"%@,%@,%@",NSStringFromSize(s1),NSStringFromSize(s2),NSStringFromSize(s3));
return 0;
}</span>
----------------------------------------------------------------------------------------------------------------------------------------------------------
四、NSRect\CGRect(CGPoint CGSIze):表示一个范围(CGPoint CGSize)
例如:
<span style="font-size:18px;">#import <Foundation/Foundation.h>
int main() {
//方式一
CGRect r1 = CGRectMake(0, 0, 100, 50);
//方式二
CGRect r2 = { {0, 0}, {100, 90}};
//方式三
NSPoint p1 = CGPointMake(20, 20);
NSSize s2 = NSMakeSize(100, 50);
CGRect r3 = {p1, s2};
// 使用CGPointZero等的前提是添加CoreGraphics框架
CGRect r4 = {CGPointZero, CGSizeMake(100, 90)};
//快速输出一个对象值,可以把这个对象转换成字符串输出
NSLog(@"%@,%@,%@,%@",NSStringFromRect(r1),NSStringFromRect(r2),NSStringFromRect(r3),NSStringFromRect(r4));
return 0;
}</span>
总结:其实创建方法还有,只要结合官方文档或查阅资料即可灵活运用。