-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
-----------并不是生来就是大神、代码量决定一切、其他都是假象、大家都不是傻子对吧?-----------
Foundation框架的结构体学习
注意:NSPoint和CGPoint 是一样的但是一般都用CGPoint 因为这个跨平台可以在iOS 和mac上使用
如果要使用CG就必须导入 CoreGraphics这个框架
问:怎么添加呢?
答:点击Targets ~~:> Build Phases ~~:> Link binary.... ~~:>添加CoreGraphics即可
----------------------------------------------------------------------------------------
NSRange(location length) 作用用于查找数组或者字符串里的范围
location表示起始位置 length表示作用范围
举例: NSString *str = @“yes i love you”;
用看的查找字符串的love起始位置和范围是多少 location = 2 length = 4
yes 是0 i 是1 love是 2 | love 一共有4个字符
实现方法:
NSString *str = @"i love oc";
NSRange range = [str rangeOfString:@"love"];
//问:为什么要查找字符串呢。
//答:因为要修改或者替换字符串的中某些字符
//查找字符串的位置这个以后会经常用到
//如果没找到就会显示一大串数字因为使用%ld打印如果换成%d的话就变成-1
NSLog(@"location = %ld, length = %ld",range.location ,range.length);
----------------------------------------------------------------------------------------
NSPoint\CGPoint 作用 创建一个屏幕的xy坐标的结构体
//问:为什么要用CGPoint呢
//答:如果你要在手机上创建一个按钮就必须利用CGPoing设定按钮的xy坐标位置
//坐标内部包含x点y点它是一个double类型的结构体
CGPoint p1 = NSMakePoint(10, 10);
NSPoint p2 = CGPointMake(20, 20);
//第2个是最常用的它的作用时 一个按钮在屏幕上的x y坐标
//如果想表示CGPoint p3 = {0,0};可以直接写 CGPointZero就表示原点了MJ说这个记住开发中经常用
----------------------------------------------------------------------------------------
NSSize\CGSize作用:按钮在屏幕上的高和宽
//问:为什么要学CGSize呢?
//答:因为你要在屏幕上创建一个按钮就必须设定按钮的大小 就是宽高
CGSize s = NSMakeSize(20, 10);
NSSize s1 = CGSizeMake(10, 20);
//第2个是最常用的
----------------------------------------------------------------------------------------
NSRect\CGRect 作用:一个结构体中包含了 CGPoint 和 CGSize 两个机构提
//问:为什么要上学CGRect呢。
//答:因为他结合了CGpoint和 CGSize 可以一次性搞定一个 按钮的xy坐标和宽高
CGRect c1 = CGRectMake(0, 0, 100, 200);
//Rect表示 CGPoint x,y坐标和 CGSize 宽高 他的作用是一个包含xy坐标宽高的机构提
//注意点:如何将结构体抓换成字符串?用一个方法
//问:为什么要把结构体抓换成字符串。
//答:因为方便查询字符串内部的属性
NSString *str1 = NSStringFromRect(c1);
//将Rect(包含CGPoint和 CGSize)转换为字符串方便查看结构体的属性
NSString *str2 = NSStringFromRange(r1);
//将CGrange转换成字符串方便打印查看内部属性
NSLog(@"@%@",str1,str2);
----------------------------------------------------------------------------------------
IOS开发中最常用的结构体写法
CGPoint p1 = CGPointMake(0,0);//定义一个xy都是0的坐标
CGSize s1 = CGSizeMake(100,50);//定义一个宽100,高50的按钮
---------------------------------------------------
//定义一个x=0,y=0 weight=100 height=50的按钮的几种写法
CGRect r1 = CGRectMake(0,0,100,50);
CGRect r2 = {{0,0},{100,50}};
CGRect r3 = {p1,s1};
CGRect r4 = {CGPointZero,CGPointSize(100,50)};
-----------------------------------------------
CGRange没有Zero其他都有Zero其他都有CGPoing,CGSize,CGRect
结构体常用的函数
//问:为什么要比较两个CGPoint是否相同呢
//答:不知道!以后可能会知道
CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));
//比较两个NSPoint是否相同 EqualTo是用来比较结构体是否相同
CGSizeEqualToSize(CGSizeMake(100, 50), CGSizeMake(100, 50));
CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));
//比较两个CGSize是否相同 EqualTo是用来比较结构体是否相同
-----------------------------------------------------------------------------------------
计算一个触摸点是否在按钮的触摸位置的方法
//问:为什么要计算触摸位置是否在按钮里呢?
//答:额呵呵!-__,-''''
//对比一个触摸点是否在按钮的范围内的方法
BOOL b2 = CGPointContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(130, 70));
//这个方法返回的是BOOL值
//如何计算按钮的触摸范围呢 x = 50 + width = 100表示从x 50往右在增加100这个范围是 触摸点的宽度
//那么触摸点的结束位置x坐标应该是50+100= 150 同理 y也是一样 y的结束点应该是在 40+50 = 90
//那么按钮的起始点时 x = 50 y = 40 那么从x50 开始到150 的结束点从y40 到 90结束点这里的范围
//如果你的点处于这个范围那么就在触摸点内 50到150包含了130 40 到90包含了70 那么这个触摸点
//是在按钮的范围 bool返回1
----------------------------------------------------------------------------------------