CGPoint、CGSize、CGRect、CGRectEdge的详细使用
http://blog.sina.com.cn/s/blog_953e22700101r7lz.html
在CGGeometry.h里的
CGPoint、CGSize、CGRect、CGRectEdge实际上都是结构体
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
enum CGRectEdge {
CGRectMinXEdge, CGRectMinYEdge, CGRectMaxXEdge, CGRectMaxYEdge
};
typedef enum CGRectEdge CGRectEdge;
创建CGPoint、CGSize、CGRect
CGPoint CGPointMake(CGFloat x, CGFloat y);
CGSize CGSizeMake(CGFloat width, CGFloat height);
CGRect CGRectMake(CGFloat x, CGFloat y, CGFloat width,CGFloat height);
得到关于CGRect的数据
CGFloat CGRectGetMinX(CGRect rect);
CGFloat CGRectGetMidX(CGRect rect);
CGFloat CGRectGetMaxX(CGRect rect);
CGFloat CGRectGetMinY(CGRect rect);
CGFloat CGRectGetMidY(CGRect rect);
CGFloat CGRectGetMaxY(CGRect rect);
CGFloat CGRectGetWidth(CGRect rect);
CGFloat CGRectGetHeight(CGRect rect);
bool CGPointEqualToPoint(CGPoint point1, CGPoint point2);//判断点是否相等
bool CGSizeEqualToSize(CGSize size1, CGSize size2);//判断大小是否相等
bool CGRectEqualToRect(CGRect rect1, CGRect rect2);//判断矩形框是否相等
CGRect CGRectStandardize(CGRect rect); //返回一个CGRect
//CGRectMake(1, 1, 1, 1)返回(1, 1, 1, 1)
//CGRectMake(1, 1, 1, -1)返回(1, 0, 1, 1)
//CGRectMake(1, 1, -1, 1)返回(0, 1, 1, 1)
//CGRectMake(1, 1, -1, -1)返回(0, 0, 1, 1)
//只有当width或height小于零时才有改变
bool CGRectIsEmpty(CGRect rect);//判断是否为空 既width或height为0
bool CGRectIsNull(CGRect rect) //判断是否为空 Null一般时执行某个方法后的返回值(例如两个不相交的CGRect执行相交方法(在下面)返回值为Null)
bool CGRectIsInfinite(CGRect rect) //判断是否为无穷大
CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)
//返回一个CGRect,x为原本的x-dx y为原本的y-dy width为原本的width-2dx height为原本的height-2dy
CGRect CGRectIntegral(CGRect rect) //情况与CGRectStandardize类似
CGRect CGRectUnion(CGRect r1, CGRect r2)//两个CGRect的合集
CGRect CGRectIntersection(CGRect r1, CGRect r2) //两个CGRect的交集
CGRect CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy); //CGRect向x或y方向便宜 x>0向右偏 x<0向左 y>0向下偏 y<0向上
void CGRectDivide(CGRect rect, CGRect *slice, CGRect *remainder,CGFloat amount, CGRectEdge edge);
bool CGRectContainsPoint(CGRect rect, CGPoint point) //判断point是否在rect内
bool CGRectContainsRect(CGRect rect1, CGRect rect2) //判断rect1是否包含rect2
bool CGRectIntersectsRect(CGRect rect1, CGRect rect2) //判断rect1和rect2是否相交
CFDictionaryRefCGPointCreateDictionaryRepresentation(CGPoint point) //把点转换为不可变字典
bool CGPointMakeWithDictionaryRepresentation(CFDictionaryRef dict,CGPoint *point); //把字典转换为点,存在point里,成功返回true 其他false
CFDictionaryRef CGSizeCreateDictionaryRepresentation(CGSize size); //把CGSize转换为不可变字典
bool CGSizeMakeWithDictionaryRepresentation(CFDictionaryRef dict,CGSize *size); //把字典转换为CGSize,存在size里,成功返回true 其他false
CFDictionaryRef CGRectCreateDictionaryRepresentation(CGRect); //把CGRect转换为不可变字典
bool CGRectMakeWithDictionaryRepresentation(CFDictionaryRef dict,CGRect *rect); //把字典转换为CGSize,存在rect里,成功返回true 其他false
在UIGeometry.h里的
NSString *NSStringFromCGPoint(CGPoint point); //把一个点转换字符串,下面类似
NSString *NSStringFromCGSize(CGSize size);
NSString *NSStringFromCGRect(CGRect rect);
CGPoint CGPointFromString(NSString *string); //把字符串转换为点 字符串为@"{2,3}"的形式
CGSize CGSizeFromString(NSString *string); //把字符串转换为CGSize 字符串为@"{3,4}"的形式
CGRect CGRectFromString(NSString *string); //把字符串转换为CGRect 字符串为@"{{3,7},{3,4}}"的形式
CGPoint、CGSize、CGRect、CGRectEdge的详细使用的更多相关文章
- objective-c 中数据类型之中的一个 几何数据类型(CGPoint,CGSize,CGRect)
// CGPoint 结构体数据原型, 用于声明一个点: /* Points. */ struct CGPoint { CGFloat x; CGFloat y; }; typedef struct ...
- CGPoint,CGSize,CGRect转NSString以及CGRect的一些便捷实用方法
打印代码小技巧 UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point); UIKIT_EXTERN NSString *NSStringFr ...
- UI基础:UIView(window,frame,UIColor,CGPoint,alpha,CGRect等) 分类: iOS学习-UI 2015-06-30 20:01 119人阅读 评论(0) 收藏
UIView 视图类,视图都是UIView或者UIView子类 UIWindow 窗口类,用于展示视图,视图一定要添加window才能显示 注意:一般来说,一个应用只有一个window 创建一个UIW ...
- iOS 开发中的CGFloat,CGPoint,CGSize和CGRect
CGGeometry类定义几何元素的结构和操作集合元素的函数 1. 数据类型 CGFloat: 浮点值的基本类型 CGPoint: 表示一个二维坐标系中的点 CGSize: 表示一个矩形的宽度和高度 ...
- Iphone各个型号机型的详细参数,尺寸和dpr以及像素
1.iPhone尺寸规格 2.单位inch(英吋) 1 inch = 2.54cm = 25.4mm 3.iPhone手机宽高 上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边 ...
- Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数
知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...
- iosiPhone屏幕尺寸、分辨率及适配
iosiPhone屏幕尺寸.分辨率及适配 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Fac ...
- iPhone屏幕尺寸、分辨率及适配
转:http://blog.csdn.net/phunxm/article/details/42174937 目录(?)[+] 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 H ...
- OC基础(24)
NSMutableArray基本概念 NSDictionary基本概念 NSMutableDictionary基本概念 常见的结构体 *:first-child { margin-top: 0 !im ...
随机推荐
- 第43章 添加更多API端点 - Identity Server 4 中文文档(v1.0.0)
您可以向托管IdentityServer4的应用程序添加更多API端点. 您通常希望通过它们所托管的IdentityServer实例来保护这些API.这不是问题.只需将令牌验证处理程序添加到主机(请参 ...
- .NET: 谈谈C#中的扩展方法
扩展方法(Extension Methods)是C#3.0时引入的新特性,相信很多人都听过并且也都用过,最常见的是在LINQ中的使用. 不仅如此,在开发中,我们也可以创建自己扩展方法,使用它来优化类的 ...
- C# 判断用户是否对路径拥有访问权限
如何获取当前系统用户对文件/文件夹的操作权限? 1.获取安全信息DirectorySecurity DirectorySecurity fileAcl = Directory.GetAccessCon ...
- VSTO中Word的查找方式
VSTO中Word的查找方式 前言 使用C#在VSTO开发Word插件的过程,经常需要对文档中的内容进行查找和替换.在Word中进行文本的查找替换,和一般对纯文本的查找替换却不太一样.因为Word文档 ...
- 永不重复的id生成器
目录 (1)需要导入的包 (2)IdGenerator类 (3)使用举例 (1)需要导入的包 主要用在格式化日FastDateFormat.getInstance("yyyyMMddHHmm ...
- springboot、springsecurity、jwt权限验证
1.背景 基于前后端分离项目的后端模块: 2.相关技术 springboot全家桶 web模块 security模块:用于权限的验证 mongodb 模块:集成mogodb模块 jwt 用于token ...
- git 常用命令,上传,下载,更新线上代码
git 常用命令以及推荐git新建上传个人博客 $ git clone //本地如果无远程代码,先做这步,不然就忽略 $ git status //查看本地自己修改了多少文件 $ git add . ...
- pthread_once()函数详解
转自:pthread_once()函数详解 pthread_once()函数详解 在多线程环境中,有些事仅需要执行一次.通常当初始化应用程序时,可以比较容易地将其放在main函数中.但当你写一个库 ...
- android view 转Bitmap 生成截图
文章链接:https://mp.weixin.qq.com/s/FQmYfT-KYiDbp-0HzK_Hpw 项目中经常会用到分享的功能,有分享链接也有分享图片,其中分享图片有的需要移动端对屏幕内容进 ...
- 转一篇OpenSSL的例子:简单的TLS服务器
原名:Simple TLS Server 原址:https://wiki.openssl.org/index.php/Simple_TLS_Server Windows下就不要从源码编译OpenSSL ...