1、NSRange:

 typedef struct _NSRange {

       NSUInteger location;

       NSUInteger length;

     } NSRange;

  NSRange本身是系统自定义的一个结构体的变量名;这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围;location表示该范围的起始位置,length表示该范围内所含的元素个数;比如”I love objective-c”中的”obj”可以用location为7,length为3的范围来表示。

 NSRange range = NSMakeRange(, );  //其中NSMakeRange()函数是专门用来创建一个结构体并给NSRange类型结构体进行赋值的,按照系统底层结构体的声明顺序,8为location,10为Length。

 NSRange range = NSMakeRange(, );
NSString *str = NSStringFromRange(range);
NSLog(@"%@", str); //其中NSStringFromRange()方法会把range这个结构体变成一个字符串便于打印。

2、NSPoint(CGPoint):

  NSPoint和CGPoint是等价的;是系统自定义的一个结构体的变量名;

 CGPoint p;

 //p.x = 1;
//p.y = 10; p = NSMakePoint(, );
p = CGPointMake(, ); // 常见的方式
NSString *str = NSStringFromPoint(p); NSLog(@"%@", str);

  NSMakePoint()和CGPointMake()两个函数都可以快速创建一个CGPoint类型的结构体并进行赋值。NSStringFromPoint()函数会把p这个结构体变成一个字符串便于打印。

3、NSSize(CGSize):

  NSSize和CGSize是等价的;是系统自定义的一个结构体的变量名;

 CGSize size; // NSSize size;

 //size.width = 100;
//size.height = 90; size = NSMakeSize(, );
size = CGSizeMake(, ); NSString *str = NSStringFromSize(size);
NSLog(@"%@", str);

  NSMakeSize()和CGSizeMake()两个函数都可以快速创建一个CGSize类型的结构体并进行赋值。NSStringFromSize()函数会把size这个结构体变成一个字符串便于打印。

4、NSRect(CGRect):

  NSRect和CGRect是等价的;是系统自定义的一个结构体的变量名;CGRect中同时包括了CGPoint和CGSize。

 NSRect rect; // CGRect rect;

 //rect.origin.x = 10;
//rect.origin.y = 11;
//rect.size.width = 100;
//rect.size.height = 90; rect = NSMakeRect(, , , );
rect = CGRectMake(, , , ); NSString *str = NSStringFromRect(rect);
NSLog(@"%@", str);

  NSMakeRect()和CGRectMake()两个函数都可以快速创建一个CGRect类型的结构体并进行赋值。NSStringFromRect()函数会把rect这个结构体变成一个字符串便于打印。

NSRange、NSPoint(CGPoint)、NSSize(CGSize)、NSRect(CGRect)的更多相关文章

  1. CGPoint、CGSize、CGRect and UIView

    首先要弄懂几个基本的概念. 一)三个结构体:CGPoint.CGSize.CGRect 1. CGPoint /* Points. */ struct CGPoint { CGFloat x; CGF ...

  2. iphone绘图的几个基本概念CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view)

    我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是装B,而是刚从vi转到xcode不久,不太习惯interface builder而已.当然如果需要我也会使用 ...

  3. 将CGPoint、CGSize、CGRect等放进数组的方法

    在oc中,数组中只能存放NSObject类型的数据,所以如果将CGPoint.CGSize.CGRect这些数据存到数组中,我们需要将他们转换为对象类型才可以, 可以借助NSValue,它是用来将基本 ...

  4. CGPoint、CGSize、CGRect、CGRectEdge的详细使用

    http://blog.sina.com.cn/s/blog_953e22700101r7lz.html 在CGGeometry.h里的 CGPoint.CGSize.CGRect.CGRectEdg ...

  5. oc中将CGRect、CGSize、CGPoint等结构体转换为字符串

    CGRect rect = CGRectMake(160, 230, 200, 200); CGPoint point = CGPointMake(20, 20); CGSize size =  CG ...

  6. Objective-C中经常使用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect

    Objective-C中经常使用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect 1   NSRange NSRange 的原型为 typedef struct _N ...

  7. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  8. C#、JAVA操作Hadoop(HDFS、Map/Reduce)真实过程概述。组件、源码下载。无法解决:Response status code does not indicate success: 500。

    一.Hadoop环境配置概述 三台虚拟机,操作系统为:Ubuntu 16.04. Hadoop版本:2.7.2 NameNode:192.168.72.132 DataNode:192.168.72. ...

  9. 教你一招:解决win10/win8.1系统在安装、卸载软件时出现2502、2503错误代码的问题

    经常遇到win10/win8.1系统在安装.卸载软件时出现2502.2503错误代码的问题. 解决办法: 1.打开任务管理器后,切换到“详细信息”选项卡,找到explore.exe这个进程,然后结束进 ...

随机推荐

  1. 锋利的jQuery第2版学习笔记6、7章

    第6章,jQuery与Ajax的应用 Ajax的优势和不足 Ajax的优势 1.不需要插件支持 2.优秀的用户体验 3.提高Web程序的性能 4.减轻服务器和带宽的负担 Ajax的不足 1.浏览器对X ...

  2. U3D 飞机大战(MVC模式)解析--面向对象编程思想

    在自己研究U3D游戏的时候,看过一些人的简单的游戏开发视频,写的不错,只是个人是java web 开发的人,所以结合着MVC思想,对游戏开发进行了一番考虑. 如果能把游戏更加的思想化,分工化,开发便明 ...

  3. Linq 数据库操作(增删改查)

    Linq数据库增删改查 Linq是一种查询语言,集成包含在formwork中,包含在C#语言中,它的作用是降低查询的门槛,提高开发效率,是我们必须掌握的技术之一,下面是我自己对linq数据库操作的方法 ...

  4. HDU4268 Alice and Bob(贪心+multiset)

    Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this game, ...

  5. eBay 开发流程

    1[记录]注册成为eBay开发者(eBay Developers Program)+创建Sanbox Key和Production Key http://www.crifan.com/register ...

  6. gcc与g++的区别

    一:gcc与g++比较 编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而 c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确, ...

  7. EF调用函数日期查询

    q = q.Where(t => System.Data.Entity.SqlServer.SqlFunctions.DateDiff("dd", t.Date, dDate ...

  8. c/c++面试总结(2)

    4.深拷贝和浅拷贝 (1)什么时候会用到拷贝函数 一个对象以值传递的方式传入函数(就是作为入参) 一个对象以值传递的方式从函数返回(就是作为返回值) 一个对象需要通过另外一个对象进行初始化 (2)是否 ...

  9. Java中String类型的不可变性和驻留池

    一 基本概念 可变类和不可变类(Mutable and Immutable Objects)的初步定义: 可变类:当获得这个类的一个实例引用时,可以改变这个实例的内容. 不可变类:不可变类的实例一但创 ...

  10. memory model

    最近看C++11 atomic发现对memory_order很是不理解,memory_order_relaxed/memory_order_consume/memory_order_acquire/m ...