Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
本文以实例详细描述了Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect的定义及用法,具体如下所示:
1、NSRange:
NSRange的原型为
typedefstruct_NSRange{
NSUIntegerlocation;
NSUIntegerlength;
}NSRange;
NSMakeRange的函数:
NS_INLINEz是内联函数
typedefNSRange*NSRangePointer;
NS_INLINENSRangeNSMakeRange(NSUIntegerloc,NSUIntegerlen){
NSRanger;
r.location=loc;
r.length=len;
returnr;
}
使用方法:
//NSRange表示的是范围 NSRangerange; range.location=18; range.length=34; NSLog(@"locationis%zi",range.location); NSLog(@"lengthis%zi",range.length); //快速创建 range=NSMakeRange(8,10); NSLog(@"locationis%zi",range.location); NSLog(@"lengthis%zi",range.length); //NSStringFromRange将上面的结构体转化成字符串类型,打印出来 NSString*str1=NSStringFromRange(range); //%@是一个OC对象,range代表的是一个结构体,str是一个OC对象 NSLog(@"rangis%@",str1);
2、NSPoint:
NSPoint的原型:
structCGPoint{
CGFloatx;
CGFloaty;
};
NSMakePoint函数:
NS_INLINENSPointNSMakePoint(CGFloatx,CGFloaty){
NSPointp;
p.x=x;
p.y=y;
returnp;
}
CGPointMake函数:
CGPointMake(CGFloatx,CGFloaty)
{
CGPointp;p.x=x;p.y=y;returnp;
}
使用方法:
//NSPoint指的是位置 NSPointpoint; //给结构体里面的点进行赋值 point.x=10; point.y=10; //快速创建点 point=NSMakePoint(10,18); //常见的是CGPointMake创建点的函数 point=CGPointMake(29,78); NSString*str2=NSStringFromPoint(point); NSLog(@"pointis%@",str2);
3、CGSize:
CGSize的原型:
structCGSize{
CGFloatwidth;
CGFloatheight;
};
NSMakeSize函数:
NS_INLINENSSizeNSMakeSize(CGFloatw,CGFloath){
NSSizes;
s.width=w;
s.height=h;
returns;
}
CGSizeMake函数:
CGSizeMake(CGFloatwidth,CGFloatheight)
{
CGSizesize;size.width=width;size.height=height;returnsize;
}
使用方法:
NSSizesize; size.width=100; size.height=12; size=NSMakeSize(12,12); size=CGSizeMake(11,11); NSString*str3=NSStringFromSize(size); NSLog(@"%@",str3);
4、CGRect:
CGRect的原型:
structCGRect{
CGPointorigin;
CGSizesize;
};
CGRectMake的函数:
CGRectMake(CGFloatx,CGFloaty,CGFloatwidth,CGFloatheight)
{
CGRectrect;
rect.origin.x=x;rect.origin.y=y;
rect.size.width=width;rect.size.height=height;
returnrect;
}
NSMakeRect函数:
NS_INLINENSRectNSMakeRect(CGFloatx,CGFloaty,CGFloatw,CGFloath){
NSRectr;
r.origin.x=x;
r.origin.y=y;
r.size.width=w;
r.size.height=h;
returnr;
}
使用方法
//既包含了尺寸大小和位置 NSRectrect; rect.origin.x=12; rect.origin.y=14; rect.size.width=12; rect.size.height=15; //快速创建方法 rect=CGRectMake(12,12,12,12); rect=NSMakeRect(11,11,11,11); //转化成字符串打印出来 NSString*str5=NSStringFromRect(rect); NSLog(@"rectis%@",str5);