结构体NSPoint、NSRect、与NSSize或CG开头的详解
来源:互联网 发布:json unicode转中文 编辑:程序博客网 时间:2024/05/29 09:56
1、坐标类NSPoint与CGPoint
(1)NSPoint是表示UI元素的坐标的,等同于CGPoint,点击NSPoint进入文档(注意:坐标指组件左上角在屏幕中的坐标,x值从左到右增加,y值从上到下增加)
typedef CGPoint NSPoint; 点击CGPoint 进入继续如下:
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
再点击CGFloat进入继续进入文档如下:
# define CGFLOAT_TYPE double
typedef CGFLOAT_TYPE CGFloat;
所以说CGFloat就是double类型的数据。而NSPoint==CGPoint是封装坐标的类,当开发时使用CGPoint,因为它可以跨平台使用。
(2)坐标类的创建(有如下两种最常用的方式):
CGPoint p1=NSMakePoint(10,10);
NSPoint p2=CGPointMake(20,20);
2、尺寸类NSSize与CGSize
(1)NSSize是表示UI组件的宽度和高度的,等同于CGSize,点击NSSize进入开发文档如下:
typedef CGSize NSSize; 点击CGSize进入如下:
struct CGSize {
CGFloat width;//已知CGFloat就是是double
CGFloat height;
};
typedef struct CGSize CGSize;
NSSize与CGSize是表示UI组件的尺寸的。同样创建尺寸类的方法上同:
NSSize s1=CGSizeMake(100,50);
NSSize s2=NSMakeSize(100,50);
CGSize s3=NSMakeSize(200,60);
3、NSRect与CGRect(组件所占的区域范围)
点击NSRect进入
typedef CGRect NSRect; 点击CGRect进入
struct CGRect {
CGPoint origin;//组件所占区域的起点坐标
CGSize size;//组件所占区域的宽度和长度
};
typedef struct CGRect CGRect;
创建此类的方法如下:
NSRect rect=NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h)
即CGRect cr=CGMakeRect(0,0,100,50);
4、同一打印结构体的每个变量:
如果按普通的方式一一进行输出很麻烦。完全可以用另外一种方式:
可以将一个结构体转换为字符串,直接打印即可。
例如将NSPoint转换为字符串的方法如下:
NSString *str=NSStringFromPoint(p1);//p1为NSPoint对象
别的也与此类似例如NSSize,NSRect转换为字符串如下:
NSString *str=NSStringFromSize(s3); //s3是NSSize对象
NSString *str=NSStringFromSize(rect);//rect是NSRect对象
5、以上类的其它简便用法
创建一个NSRect的另一种方法:
CGRect rect={{0,0},{100,90}}; 或者CGRect rect={p1,s2};
开发中经常用到坐标原点CGPointMake(0,0)等同于一个常量CGPointZero 所以以上的定义也可以写作如下格式:
CGPoint rect={CGPointZero,CGSizeMake(100,90)};
与此类似也有CGRect类型常量CGRectZero表示起始位置和宽高都为0,也有CGSize类型的常量CGSizeZero它表示宽高都为0。
6、比较是否以上类是否相同的方法:
CGPointEqualToPoint(CGPoint point1, CGPoint point2)
CGSizeEqualToSize(CGSize size1, CGSize size2);
CGRectEqualToRect(CGRect rect1, CGRect rect2);
都是返回BOOL类型的值。
注意:一般以CG开头的都是CoreGraphics框架内的类。以上类都是。
CoreGraphics这个框架是跨平台的。
7、用以下方法判断某个点point在没在左方的rect区域内
BOOL b=CGRectContainsPoint(CGRect rect, CGPoint point);
(1)NSPoint是表示UI元素的坐标的,等同于CGPoint,点击NSPoint进入文档(注意:坐标指组件左上角在屏幕中的坐标,x值从左到右增加,y值从上到下增加)
typedef CGPoint NSPoint; 点击CGPoint 进入继续如下:
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
再点击CGFloat进入继续进入文档如下:
# define CGFLOAT_TYPE double
typedef CGFLOAT_TYPE CGFloat;
所以说CGFloat就是double类型的数据。而NSPoint==CGPoint是封装坐标的类,当开发时使用CGPoint,因为它可以跨平台使用。
(2)坐标类的创建(有如下两种最常用的方式):
CGPoint p1=NSMakePoint(10,10);
NSPoint p2=CGPointMake(20,20);
2、尺寸类NSSize与CGSize
(1)NSSize是表示UI组件的宽度和高度的,等同于CGSize,点击NSSize进入开发文档如下:
typedef CGSize NSSize; 点击CGSize进入如下:
struct CGSize {
CGFloat width;//已知CGFloat就是是double
CGFloat height;
};
typedef struct CGSize CGSize;
NSSize与CGSize是表示UI组件的尺寸的。同样创建尺寸类的方法上同:
NSSize s1=CGSizeMake(100,50);
NSSize s2=NSMakeSize(100,50);
CGSize s3=NSMakeSize(200,60);
3、NSRect与CGRect(组件所占的区域范围)
点击NSRect进入
typedef CGRect NSRect; 点击CGRect进入
struct CGRect {
CGPoint origin;//组件所占区域的起点坐标
CGSize size;//组件所占区域的宽度和长度
};
typedef struct CGRect CGRect;
创建此类的方法如下:
NSRect rect=NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h)
即CGRect cr=CGMakeRect(0,0,100,50);
4、同一打印结构体的每个变量:
如果按普通的方式一一进行输出很麻烦。完全可以用另外一种方式:
可以将一个结构体转换为字符串,直接打印即可。
例如将NSPoint转换为字符串的方法如下:
NSString *str=NSStringFromPoint(p1);//p1为NSPoint对象
别的也与此类似例如NSSize,NSRect转换为字符串如下:
NSString *str=NSStringFromSize(s3); //s3是NSSize对象
NSString *str=NSStringFromSize(rect);//rect是NSRect对象
5、以上类的其它简便用法
创建一个NSRect的另一种方法:
CGRect rect={{0,0},{100,90}}; 或者CGRect rect={p1,s2};
开发中经常用到坐标原点CGPointMake(0,0)等同于一个常量CGPointZero 所以以上的定义也可以写作如下格式:
CGPoint rect={CGPointZero,CGSizeMake(100,90)};
与此类似也有CGRect类型常量CGRectZero表示起始位置和宽高都为0,也有CGSize类型的常量CGSizeZero它表示宽高都为0。
6、比较是否以上类是否相同的方法:
CGPointEqualToPoint(CGPoint point1, CGPoint point2)
CGSizeEqualToSize(CGSize size1, CGSize size2);
CGRectEqualToRect(CGRect rect1, CGRect rect2);
都是返回BOOL类型的值。
注意:一般以CG开头的都是CoreGraphics框架内的类。以上类都是。
CoreGraphics这个框架是跨平台的。
7、用以下方法判断某个点point在没在左方的rect区域内
BOOL b=CGRectContainsPoint(CGRect rect, CGPoint point);
0 0
- 结构体NSPoint、NSRect、与NSSize或CG开头的详解
- Foundation框架中的结构体(NSRange/NSPoint/NSSize/NSRect)
- 【Foundation学习笔记】常用结构体--NSRange、NSPoint、NSSize、NSRect
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect
- 黑马程序员-----Foundation常用的结构体(NSRange,NSPoint,NSSize,NSRect)
- NSPoint,NSSize,NSRect
- NSRange、NSSize、NSPoint、NSRect
- Foundation——常用结构体 (NSRange 、NSPoint、NSsize、NSRect)
- Objective——C Foundation——常用结构体 (NSSRange 、NSPoint、NSsize、NSRect)
- OC基础-Foundation——常用结构体 (NSRange 、NSPoint、NSsize、NSRect)
- OC--Foundation-NSPoint,NSSize,NSRect
- Foundation中的NSPoint/NSSize/NSRect
- NSRange,NSPoint,NSSize,NSRect(基础)
- NSPoint、NSSize、NSRect、NSRange使用与Bool细节
- foundation的使用——NSRange NSPoint NSSize NSRect
- 【Foundation】16-NSRange、NSPoint、NSSize、NSRect知识点
- Objective-C 【NSPoint&CGPoint-NSSize&CGSize-NSRect&NSRect】
- 黑马程序员——iOS开发——oc——founctation中常用结构体(NSRange、NSPoint\CGPoint、NSSize\CGSize、NSRect\CGRect)
- 关于@property自动生成的实例变量的相关问题
- Qt之设置窗口背景
- python笔记 6
- 第2篇,到底什么是互联网思维?
- Qt之QTextEdit
- 结构体NSPoint、NSRect、与NSSize或CG开头的详解
- python中的split函数
- Run-Time Check Failure #2 - Stack around the variable 'myTrackbarName' was corrupted.
- 第3篇,我不懂技术,自己能运营微信公众号吗?
- Struts2: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]
- hdu 1281 棋盘游戏(最大匹配·匈牙利)
- Android核心基础-8.Android四大组件之Activity-3.生命周期、横竖屏切换、启动模式、进程管理
- WordPress媒体库图片不显示或显示错误的原因及解决方案
- java中的任务调度:ScheduledExecutorService