【Foundation】16-NSRange、NSPoint、NSSize、NSRect知识点


一、NSRange

1.1 NSRange本质是结构体,里面有location和length两个成员。

1.2 NSRange表示元素在数组中的范围,location表示起始元素的下标,length表示要包含的元素个数。

1.3 NSMakeRange函数可以用于创建NSRange对象。如:

      NSRange r1 =NSMakeRange(2,4);

1.4 查找某个字符串在str中的范围,可以使用字符串的对象方法rangeOfString来获得。如:

      NSRange range=[str rangeOfString:@"java"];

1.5 如果使用rangeOfString找不到元素,则length的值是0,location的值是NSNotFound,NSNotFound转换成无符号整型是-1

#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";
    // 字符串的对象方法rangeOfString用于查找某个字符串在str中的范围
    // 如果找不到,lenght=0,location=NSNotFound==-1
    NSRange range=[str rangeOfString:@"love"];
    NSLog(@"loc=%ld,length=%ld",range.location,range.length); // loc=2,length=4
    //NSLog(@"%d",NSNotFound); //值:-1
    
    return 0;
}

二、CGPoint\NSPoint

2.1 CGPoint\NSPoint本质是个结构体,一般用于表示点元素的坐标位置。CGPoint比较常用,因为CGPoint可以跨平台。

2.2 可以使用NSMakePoint和CGPointMake方法创建CGPoint和NSPoint对象。开发中CGPointMake比较常用。如:

CGPoint p1 = NSMakePoint(10,10);

NSPoint p2 = CGPointMake(20,20); // 最常用

2.3 比较两个点是否相同(x、y)

Bool b = CGPointEqualToPoint(CGPointMake(10,10),CGPointMake(10,10));


三、CGSize\NSSize

3.1 CGSize和NSSize表示一个UI元素的尺寸。

3.2 可以使用CGSizeMake和NSMakeSize方法创建CGSize和NSSize对象。如:

NSSize s1 = CGSizeMake(100,50);

CGSize s2 = NSMakeSize(100,50);

3.3 比较两个Size是否相同

CGSizeEqualToSize(CGSize size1,CGSize size2);



四、CGRect\NSRect

4.1 CGRect和NSRect表示一个UI元素的位置和尺寸。

4.2 可以通过CGRectMake和NSMakeRect方法创建CGRect和NSRect对象。如:

CGRect r1 = CGRectMake(0,0,100,50);

4.3 通过结构体成员变量打印CGRect的成员值

 CGRect r1 = CGRectMake(0,0,150,100);
 NSLog(@"x = %f,y = %f,width = %f, height = %f",r1.origin.x,r1.origin.y,r1.size.width,r1.size.height);

4.4 创建CGRect对象的其它方式

 CGRect r2 = {{0,0},{100,90}};

 CGRect r3 = {p1,s2}; 

4.5 比较两个Rect是否相同

CGRectEqualToRect(CGRect rect1,CGRect rect2);

4.6 判断CGRect中是否包含CGPoint

CGRectContainsPoint(CGRect rect,CGPoint point);// 这个方法包含在CoreGraphics framework


五、将结构体转换为字符串

NSString *str = NSStringFromPoint(p1);// 将Point对象转换为字符串 {10,10}

NSString *str2 = NSStringFromSize(s1);// 将Size对象转换为字符串 {100,50}

NSString *str3 = NSStringFromRect(r1);// 将Rect对象转换为字符串 {{0,0},{150,100}}


六、原点的表示

原点可以使用CGPointZero,相当于CGPointMake(0,0);同理,也有CGSizeZero,CGRectZero,如:

CGRect r4 = {CGPointZero,CGSizeMake(100,90)};






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值