NSRange、NSPoint(CGPoint)、NSSize(CGSize)、NSRect(CGRect)

1、NSRange:

1 typedef struct _NSRange {
2
3       NSUInteger location;
4
5       NSUInteger length;
6
7     } NSRange;

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

1 NSRange range = NSMakeRange(8, 10);  //其中NSMakeRange()函数是专门用来创建一个结构体并给NSRange类型结构体进行赋值的,按照系统底层结构体的声明顺序,8为location,10为Length。
2
3 NSRange range = NSMakeRange(8, 10);
4 NSString *str = NSStringFromRange(range);
5 NSLog(@"%@", str);
6
7 //其中NSStringFromRange()方法会把range这个结构体变成一个字符串便于打印。

2、NSPoint(CGPoint):

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

 1 CGPoint p;
 2
 3 //p.x = 1;
 4 //p.y = 10;
 5
 6 p = NSMakePoint(10, 9);
 7 p = CGPointMake(8, 9); // 常见的方式
 8 NSString *str = NSStringFromPoint(p);
 9
10 NSLog(@"%@", str);

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

3、NSSize(CGSize):

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

 1 CGSize size; // NSSize size;
 2
 3 //size.width = 100;
 4 //size.height = 90;
 5
 6 size = NSMakeSize(90, 80);
 7 size = CGSizeMake(10, 8);
 8
 9 NSString *str = NSStringFromSize(size);
10 NSLog(@"%@", str);

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

4、NSRect(CGRect):

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

 1 NSRect rect; // CGRect rect;
 2
 3 //rect.origin.x = 10;
 4 //rect.origin.y = 11;
 5 //rect.size.width = 100;
 6 //rect.size.height = 90;
 7
 8 rect = NSMakeRect(10, 10, 80, 80);
 9 rect = CGRectMake(8, 9, 10, 90);
10
11 NSString *str = NSStringFromRect(rect);
12 NSLog(@"%@", str);

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

时间: 2024-11-03 21:33:20

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

01-结构体NSRange、NSPoint、NSSize、NSRect、及NSString简介

1.结构体 1>.NSRange(location, length): 从location这个位置开始计数长度为length NSRange的创建方式: NSRange r1 = {location, length};  // es:  NSRange r1 = {2, 4}: 一般不这样写 NSRange r2 = {.location = 2, .length = 4}  // 一般也不这样写 NSRange r3 = NSMakeRange(2, 4);  // 必须掌握 es:查找某个字

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

我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是装B,而是刚从vi转到xcode不久,不太习惯interface builder而已.当然如果需要我也会使用它.一个东西的存在没有绝对的好与坏,只是存在时间与空间决定了它的价值. (忘了讲了,我的环境是xcode4.2)首先要弄懂几个基本的概念. 一)三个结构体:CGPoint.CGSize.CGRect1.  CGPoint [plain] view plaincopy   /* Points. */

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

1   NSRange NSRange 的原型为 typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; NSMakeRange的函数 NS_INLINEz是内联函数 typedef NSRange *NSRangePointer; NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) { NSRange r; r.locatio

02-常见控件:ImageView(图片视图)、slider(滑动器)、switch(开关)使用

效果图:       通过点击设置 将显示如第二张图所示                            第三张为项目目录文件 供参考              主要代码: // // WHBLAPViewController.h // 04-whblap查看器 // // Created by whblap on 14-6-6. // Copyright (c) 2014年 whblap. All rights reserved. // #import <UIKit/UIKit.h>

下载-深入浅出Netty源码剖析、Netty实战高性能分布式RPC、NIO+Netty5各种RPC架构实战演练三部曲视频教程

下载-深入浅出Netty源码剖析.Netty实战高性能分布式RPC.NIO+Netty5各种RPC架构实战演练三部曲视频教程 第一部分:入浅出Netty源码剖析 第二部分:Netty实战高性能分布式RPC 第三部分:NIO+Netty5各种RPC架构实战演练

bos 第4 (区域excel批量导入、区域通用分页查询、分区的添加、分区多条件分页查询、分区导出excel)

BOS项目笔记 第4天 今天内容安排: 1.区域批量导入功能 jQuery OCUpload(一键上传插件).apache POI.pinyin4j 2.实现区域的分页查询 3.对分页代码重构 4.添加分区(combobox下拉框) 5.分区的组合条件分页查询 6.分区数据导出功能 1. 区域数据批量导入功能 1.1 一键上传插件使用 ajax不能做文件上传. 第一步:在jsp页面中引入插件的js文件 <script type="text/javascript" src=&quo

Python学习笔记 之 递归、二维数组顺时针旋转90&#176;、正则表达式

递归.二维数组顺时针旋转90°.正则表达式 1.   递归算法是一种直接或间接调用自身算法的过程. 特点: 递归就是在过程或函数里调用自身 明确的递归结束条件,即递归出口 简洁,但是不提倡 递归次数多容易造成栈溢出 要求: 每次调用递归规模上有所减小 前一次为后一次做准备 规模较小时必须直接给出解答而不再进行递归调用 例子:递归实现二分法 1 def searchMyData(mydate,a1): 2 mid = int(len(mydate)/2) 3 if mid >= 1: 4 if m

Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别

http://www.cnblogs.com/xrq730/p/4839245.html 前言 之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露.并行与并发.Client模式和Server模式.Minor GC和Full GC,本文详细讲解下这些概念的区别. 内存溢出和内存泄露的区别 1.内存溢出 内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了. 2.内存泄露 内存泄露指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可

JavaScript - 简介、在HTMl中使用JavaScript、基本概念

1. JavaScript简介 JavaScript历史回顾 JavaScript是什么 JavaScript与ECMAScript的关系 JavaScript的不同版本 一言概之,略. 2. 在HTML中使用JavaScript 要把JavaScript放到网页中,就得涉及Web的核心语言 -- HTML.当初开发JavaScript的时候,要解决的一个重要问题就是让JavaScript与HTML页面共存,并且不影响页面在浏览器中的呈现效果.最终决定为Web增加统一的脚本支持. 2.1 <sc