ios CGRec用法
rect(x,y,width,height);
width, height正负代表了从原点的绘制方向,矩形的长宽都是取得绝对值
*/
// Do any additional setup after loading the view, typically from a nib.
#pragma mark -------------------------------------------生成CGRect---------------------------------------
CGRect originalRect = CGRectMake(80.44, 30.66, 100.77, 95.88);
NSLog(@"originalRect = %@",NSStringFromCGRect(originalRect));
// CGRectInfinite 用法
/*
生成无穷大矩形
*/
NSLog(@"infiniteRect = %@",NSStringFromCGRect(CGRectInfinite));
// CGRectNull 用法
NSLog(@"nullRect = %@",NSStringFromCGRect(CGRectNull));
//CGRectZero 用法
/*
CGRectMake(0, 0, 0, 0)
*/
NSLog(@"zeroRect = %@",NSStringFromCGRect(CGRectZero));
// CGRectInset 用法
CGRect insetRect = CGRectInset(originalRect, 1, 2);
/*
CGRectInset(originalRect, dx, dy);
insetRect.origin.x = originalRect.origin.x + dx ;
insetRect.origin.y = originalRect.origin.y + dy;
insetRect.size.width = originalRect.size.width - 2 * dx;
insetRect.size.height = originalRect.size.height - 2 * dy;
*/
NSLog(@"insetRect = %@",NSStringFromCGRect(insetRect));
//CGRectOffset 用法
CGRect offsetRect = CGRectOffset(originalRect, -1, -2);
/*
CGRectOffset(originalRect, dx, dy);
insetRect.origin.x = originalRect.origin.x + dx ;
insetRect.origin.y = originalRect.origin.y + dy;
insetRect.size.width = originalRect.size.width;
insetRect.size.height = originalRect.size.height;
*/
NSLog(@"offsetRect = %@",NSStringFromCGRect(offsetRect));
//CGRectIntegral 用法
/*
将origin值向下调整到最近整数,size向上调整到最近整数,使生成的CGRect可以完全包含原来的CGRect.
*/
CGRect integralRect = CGRectIntegral(originalRect);
NSLog(@"integralRect = %@",NSStringFromCGRect(integralRect));
//CGRectStandardize 用法
/*
CGRectStandardize(testRect)
standardizeRect.size.width = fabsf(testRect.size.width)//testRect.size.width 的绝对值
standardizeRect.size.height = fabsf(testRect.size.height)//testRect.size.height 的绝对值
*/
CGRect testRect = CGRectMake(-5.5, -6.6, -7.7, -8.8);
CGRect standardizeRect = CGRectStandardize(testRect);
NSLog(@"standardizeRect = %@",NSStringFromCGRect(standardizeRect));
//CGRectUnion 用法
/*
CGRectUnion(rect1,rect2) 返回值是能够包含两个矩形的最小矩形
unionResultRect.origin.x = min(rect1.origin.x, rect2.origin.x);
unionResultRect.origin.y = min(rect1.origin.y, rect2.origin.y);
unionResultRect.size.width = min(rect1.origin.y, rect2.origin.y);
unionResultRect.size.height = min(rect1.origin.y, rect2.origin.y);
*/
CGRect unionRect1 = CGRectMake(100, 50, 60, 70);
CGRect unionRect2 = CGRectMake(180, 20, 30, 40);
CGRect unionRect3 = CGRectMake(120, 80, 80, 90);
CGRect unionResultRect1 = CGRectUnion(unionRect1, unionRect2);
CGRect unionResultRect2 = CGRectUnion(unionRect1, unionRect3);
NSLog(@"unionResultRect1 = %@, unionResultRect2 = %@",NSStringFromCGRect(unionResultRect1),NSStringFromCGRect(unionResultRect2));
//CGRectIntersection 用法
/*
CGRectIntersection(rect1, rect2)
求两个矩形的交集,返回结果是两个矩形相交的区域,如果没有交集的话,返回值是NSNullRect
*/
CGRect interRect1 = CGRectMake(100, 50, 60, 70);
CGRect interRect2 = CGRectMake(180, 20, 30, 40);
CGRect interRect3 = CGRectMake(120, 80, 80, 90);
CGRect intersectionRect1 = CGRectIntersection(interRect1, interRect2);
CGRect intersectionRect2 = CGRectIntersection(interRect1, interRect3);
NSLog(@"intersectionRect1 = %@, intersectionRect2 = %@",NSStringFromCGRect(intersectionRect1),NSStringFromCGRect(intersectionRect2));
#pragma mark ------------------------------------------获取x,y,width,height---------------------------------------------------
//CGRectGetMinX(originalRect),CGRectGetMidX(originalRect),CGRectGetMaxX(originalRect),CGRectGetMinY(originalRect),CGRectGetMidY(originalRect),CGRectGetMaxY(originalRect) , CGRectGetWidth(originalRect), CGRectGetHeight(originalRect)用法
/*
minX = originalRect.origin.x;
midX = (minX + maxX)/2;
maxX = (originalRect.origin.x + originalRect.size.width);
minY = originalRect.origin.y;
midY = (minY + maxY)/2;
maxY = (originalRect.origin.y + originalRect.size.height);
width = originalRect.size.width;
height = originalRect.size.height;
*/
NSLog(@"minX = %f, midX = %f, maxX = %f, minY = %f, midY = %f, maxY = %f, width = %f, height = %f",CGRectGetMinX(originalRect),CGRectGetMidX(originalRect),CGRectGetMaxX(originalRect),CGRectGetMinY(originalRect),CGRectGetMidY(originalRect),CGRectGetMaxY(originalRect),CGRectGetWidth(originalRect), CGRectGetHeight(originalRect));
//CGRectGetWidth(originalRect), CGRectGetHeight(originalRect),用法
/*
width = originalRect.size.width;
height = originalRect.size.height;
*/
NSLog(@"width = %f, height = %f",CGRectGetWidth(originalRect), CGRectGetHeight(originalRect));
#pragma mark -----------------------------------------NSString 与 CGRect 转换-----------------------------------------------
//NSString 与 CGRect 转换
NSString *originalRectStr = NSStringFromCGRect(originalRect);
CGRect rectFromStr = CGRectFromString(originalRectStr);
NSLog(@"originalRectStr = %@, rect = %@",originalRectStr,NSStringFromCGRect(rectFromStr));
#pragma mark -----------------------------------------CGRect 与 NSDictionary 转换---------------------------------------------
//.CGRect与NSDictionary转换
CFDictionaryRef frameDictRef = CGRectCreateDictionaryRepresentation(originalRect);
NSDictionary *frameDict = [NSDictionary dictionaryWithDictionary:(NSDictionary*)CFBridgingRelease(frameDictRef)]; // autoreleased
CGRect rectFromDic;
CGRectMakeWithDictionaryRepresentation((CFDictionaryRef)frameDict, &rectFromDic);
NSLog(@"frameDict = %@, rectFromDic = %@",frameDict, NSStringFromCGRect(rectFromDic));
#pragma mark -----------------------------------------CGRect 与 NSValue 转换---------------------------------------------
//. CGRect与NSValue转换
/*
在NSArray,NSDictionary容器中只能存储Objetive-C对象,不能直接存储C结构体,所有需要存储矩形时,需要将其转换为NSValue值。
*/
NSValue *originalRectValue = [NSValue valueWithCGRect:originalRect];
CGRect valueRect = [originalRectValue CGRectValue];
NSLog(@"originalRectValue = %@, valueRect = %@",originalRectValue, NSStringFromCGRect(valueRect));
#pragma mark -----------------------------------------判断---------------------------------------------
//CGRectEqualToRect
/*
CGRectEqualToRect(CGRect rect1, CGRect rect2)
rect1 与 rect2 的origin,size 完全相同 ,返回YES;否则,返回NO;
*/
if (CGRectEqualToRect(unionRect1, unionRect2)) {
NSLog(@"相同");
} else {
NSLog(@"不相同");
}
//CGRectIsEmpty(CGRect rect)
/*
rect的宽度和高度只要有一个就会被定为emptyRect
*/
CGRect emptyRect = CGRectMake(0, 10, 0, 20);
if (CGRectIsEmpty(emptyRect)) {
NSLog(@"是 emptyRect");
} else {
NSLog(@"不是 emptyRect");
}
//CGRectIsNull(CGRect rect)
/*
rect 是NSNullRect 返回true
*/
if (CGRectIsNull(originalRect)) {
NSLog(@"是 NSNullRect ");
} else {
NSLog(@"不是 NSNullRect ");
}
//CGRectIsInfinite(CGRect rect)
/*
判断是不是无穷大矩形
*/
if (CGRectIsInfinite(originalRect)) {
NSLog(@"是 无穷大 ");
} else {
NSLog(@"不是 无穷大 ");
}
//CGRectContainsPoint(CGRect rect, CGPoint point)
/*
判断rect 是不是包含 point 这个点
*/
CGPoint position = CGPointMake(100, 100);
if (CGRectContainsPoint(originalRect, position)) {
NSLog(@" rect 包含 point");
} else {
NSLog(@" rect 不包含 point");
}
//CGRectContainsRect(CGRect rect1, CGRect rect2)
/*
判断 rect2 是不是在 rect1 里面
*/
if (CGRectContainsRect(unionRect1, unionRect2)) {
NSLog(@" rect1 包含 rect2");
} else {
NSLog(@" rect1 不包含 rect2");
}
//CGRectIntersectsRect(CGRect rect1, CGRect rect2)
/*
判断 rect1 与 rect2 是不是有交集
*/
if (CGRectIntersectsRect(unionRect1, unionRect2)) {
NSLog(@" rect1 与 rect2 有交集");
} else {
NSLog(@" rect1 与 rect2 没有交集");
}
ios CGRec用法相关推荐
- IOS UIWebView用法
转自猫猫小屋 IOS webview控件使用简介(一) IOS webview控件使用简介(二)–加载本地html 转载于:https://www.cnblogs.com/lairui1232000/ ...
- iOS storyboard 用法详解
发布于:2013-12-13 15:57阅读数:118220 Storyboard是一项令人兴奋的功能,在iOS5中首次推出,在开发app的界面时可以极大地节省时间. 如下图所示,这就是一个完整的应用 ...
- [iOS]YYModel用法总结
笔者之前一直在用MJExtension来做网络数据模型转换,最近发现这个库在某些场景下转换会出现问题,然后就尝试了使用YYModel.YYModel很久之前就听说过,源代码写得很精妙,也有很多开发者在 ...
- ios NSFileManager 用法详解
2019独角兽企业重金招聘Python工程师标准>>> iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileMana ...
- ios RunLoop 用法
2019独角兽企业重金招聘Python工程师标准>>> A run loop for a given thread will wait until one or more of it ...
- IOS ----UIButton用法详解
这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举了.希望对大家有用. //这里创建一个圆角矩形的按钮 UIButton *button1 = [UIButton buttonW ...
- iOS block 用法
1.定义Block /* 回传void ,参数也是void 的block*/ void (^blockReturningVoidWithVoidArgument)( void ); /* 回传整数,两 ...
- iOS uuchart 用法
这个是 画 折线图用的 一个 第三方文件 说白了就是一个 用 贝塞尔 曲线封装好的一个 第三方. 但是有机会还是需要看下怎么用
- iOS 取绝对值用法
int abs(int i); // 处理int类型的取绝对值 double fabs(double i); //处理double类型的取绝对值 float fabsf(float i); /处理fl ...
最新文章
- web.config文件
- C#里partial关键字的作用
- 如何在管理员页面查看知识星球活跃度和更多明细
- 支付宝上市,让我损失了2000万(盘点这些年错过的机会)
- mysql undrop_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据
- 中消协:视频平台不应向VIP老会员收取超前点播费
- 移动设备 计算机设备,移动设备
- linux上tomcat安装
- 国内外中英文版一元购网站开发案例源码
- 用Python写一个Excel汇总和比对小程序
- 使用NVivo完善定性编码的艺术
- USB Repair(usb设备修复工具)官方正式版V8.0.3.1069 | u盘修复软件下载 | u盘修复软件哪个最好?
- 通过VBA实现FTP自动下载及关键字检索等功能
- 低功耗视频解码芯片-TVP5150
- Word文档最后一页总是删除不掉怎么办?
- [2021时空AI白皮书]时空人工智能:关键技术
- 对图标的坐标轴进行调整
- maya为什么不能导出fbx_FBX动画导入导出经验心得(MayaToMax,MayaToMaya)
- openFeign夺命连环9问,这谁受得了?
- sp许可证有什么用呢?
热门文章
- 为此计算机所有用户安装加载项,安装Office 2013后,无法在计算机上安装Outlook加载项...
- ulink php,【转载】15款USB数字界面横向评测(对比顶级CD转盘)!多看点!
- hadoop学习1 java操作HDFS
- Tensorflow官方文档---起步 MNIST示例
- xBIM 基础16 IFC的空间层次结构
- 【LeetCode】200. 岛屿的个数
- PMP:4.项目整合管理
- 使用Puppeteer进行数据抓取(一)——安装和使用
- 爬虫——正则表达式re模块
- 动态创建ActiveRecord条件的查询 MyQuery