CGRect常见用法和几个 CGRect 函数

CGRect  

每个视图都使用一个边框定义其界限。这个边框指定了视图的轮廓:其位置、宽度和高度。

我们使用Core Graphics结构宋定义边框矩形。对于边框,这通常表示由原点(CGPoint,x和y)和大小(CGsize,宽度和高度)组成的CGRect矩形。下面是这些类型的简要描述。

1.CGRect

CGRect结构在屏幕上定义了一个矩形。它包含原点(rect.origin)和大小(rect.size)。需要了解以下CGRect函数。

·CGRectMake(origin.x,origin.y,size.width. Size.height)在代码中定义矩形。

·NSStringFromCGReot(someCGRect)把CGRect结构转变为格式化字符串。

·CGRectFromString(aString)由字符串表示恢复出矩形。

·CGRectlnset(aRect)用来创建较小或较大的矩形(中心点相同)。使用正的内嵌值表示较小的矩形,使用负的内嵌值表示较大的矩形。

·CGRectIntersectsRect(rect 1.feet 2)可以判断矩形结构是否交叉,两个矩形对象是否重叠。

·CGRectZero是一个高度和宽度为零、位于(0,0)的矩形常量。需要创建边框但还不确定边框大小或位置时,可以使用此常量。

2.CGPoint和CGSize

前者通过x和y坐标定义,后者包括宽度和高度。使用CGPointMake(x,y)创建点。CGSize- Make(width,height)创建大小。虽然这两个结构看上去相同(两个浮点值),但iPhoneSDK对二者有所区别。点表示位置值,大小表示程度值。不能将myFrame.origin设置为大小。

与矩形相同,可以将它们与字符串进行相互转换,可用如下函数:NSStringFromCGPoint()、 NSStringPromCGgize()、CGSizeFromString()和CGPointFromString()。

3.定义位置

可以通过设置中心点(CGPoint)或边界(CGRect)定义视图的位置。与边框不同,视图的边界使用它自己的坐标系来反映视图的边框。在实际应用中,这表示边界的原点为(0.0,0.0),大小是它的宽度和高度。

当希望移动视图或重新调整视图大小时,可以更新其边框的原点、中心点或大小。不需要担心显示或隐藏的矩形部分。iPhone将负责完成重新绘图。这允许将视图作为切实的对象对待,并将呈现问题委托给CocoaTouch。例如[myViewsetFrame:CGRectMake(0.of,50.Of.mywidth, myheight)];。

4.转换

标准CoreGraphics调用会实时转换视图。举例来说,可以应用剪辑、旋转或其他平面几何效果。CocoaTouch支持一整套仿射转换(转换、旋转、缩放和倾斜等)。任何UIView子类的drawRect:方法都提供通过低级Core Graphics调用进行绘图的入口点。

说明  在调用Core Graphics函数时,记住Quartz从左下方建立坐标系,而UIViews的原点位于左上方。

5.其他视图特征

除了物理屏幕布局之外,还可以设置以下视图特征。

·每个视图都有一个半透明要素(alpha),其值介于不透明和透明之间。可以通过[myView  setAlpha:value]来调整它,其alpha值介于0.0(完全透明)和1.0(完全不透明)之间。

·可以为视图背景指定一个颜色。[myView setBackgroundColor:[UIColor redColor])可将视图设置为红色。

6.视图布局

图2-2显示了普通iPhone应用程序屏幕的布局。对于当前发布的iPhone,屏幕大小在纵向模式下为320X480,在横向模式下为480X320。无论使用横向还是纵向模式,位于屏幕顶部的标准状态栏都占用20像素的高度。要查询状态栏边框,可以调用[[UIApplication sharedApplication] statusBarPrame]。

如果更愿意释放这20像素的屏幕空间,则可以完全隐藏状态栏。使用此UIApplication调用: [UIApplication sharedApplication]setStatusBarHidden:YES animated:NO]。或者,在应用程序的Info.plist文件中将UIStatusBarHidden设置为<true/>。

要仅在横向模式下运行应用程序,可以将状态栏方向设置为横向。如果计划隐藏状态栏,也应执行此操作(即[[UIApptication sharedApplication] setStatusBarOrientation: UIInEerfaceOrientationLandscapeRight])。这将强制窗口并排显示井生成正确的横向键盘。

UIScreen对象代表iPhone的物理屏幕([UIScreen malnScreen])。此屏幕对象建立视图布局边界与像素空间之间的映射。它返回全屏大小(bounds)或只是应用程序占用的矩形(applicationFrame)。后面会考虑状态栏以及任何工具栏/导航栏(如果已使用)的大小。

默认情况下,UINavigationBar、UIToolbar和UITabBar对象的高度均为44像素。使用这些数字计算iPhone屏幕上的可用空间,在未使用Interface Builder的布局工具时对应用程序进行布局

CGRect 函数

1.CGRectOffset使用从源CGRect偏移的原点来创建矩形
        float offset = 25.0;
    CGRect r1 = CGRectMake(100, 100, 100, 100);
    CGRect r2 = CGRectOffset(r1, offset, offset);
2.CGRectIntersectsRect允许我们确定两个矩形是否相交
    float offset = 25.0;
    CGRect r1 = CGRectMake(100, 100, 100, 100);
    CGRect r2 = CGRectMake(150, 150, 100, 100);
    if (CGRectIntersectsRect(r1, r2))
    {
        NSLog(@"intersecting");
    }
3.NSStringFromCGRect可以用来把CGRect显示到控制台
    CGRect r1 = CGRectMake(100, 100, 100, 100);
    NSLog(@"rect:@%",NSStringFromCGRect(r1));    
同样,CGRectFromString允许我们根据一个字符串创建一个CGRect:
    NSString *r = @"{0,0},{100,100}";
    CGRect r1 = CGRectFromString(r);

时间: 2024-10-13 16:03:51

CGRect常见用法和几个 CGRect 函数的相关文章

常见的10个JavaScript动画函数库

一.Snap.svg SVG是一种创建交互式动画非常棒的方式,独立的分辨率的矢量图形在任何大小的屏幕上看起来效果都很好.Snap.svg库使操作SVG变得更jQuery操作DOM一样简单. 二.Motio 一个基于动画和平移的简单但强大的JavaScript库 三.animo.js 堆栈动画,可以创建跨浏览器平台的模糊效果,在动画完成可以调用回调函数,创建更魔幻的动画. 四.Move.js Move.js是一个很小的函数库,能简单而优雅的支持CSS3. 五.favico.js 用动画徽章的方式激

Vim编辑器的常见用法和设置

一.常见的编辑器: nano.gedit.vi.vim. 二.vi和vim的区别: vim是vi的增强版本. 三.原理: 用编辑器打开的时候是在内存当中打开的.在保存之后在写入到文件里面去. 四.几种模式: 命令模式--->插入模式--->末行模式(尾行模式) 1.命令模式:用vim打开之后就是命令模式 set nu 显示行号 set nonu  不显示行号 u   回滚.返回(取消前面的操作) Ctrl+r 前进 yy     复制当前行 5yy   从当前行开始复制5行 p 粘贴(复制了之

总结一下几个for循环常见用法和区别

1.for循环//有人喜欢使用一个临时变量把长度缓存起来,说是大数据时效果更好(我本人没有去验证) for(j = 0,len=arr.length; j < len; j++) { //执行代码 } 分析可用功能 break和continue 2.forEach//遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE//1 没有返回值 arr.forEach((item,index,array)=>{//箭头函数的写法 //执行代码 }) arr.forEach(function (

处理一些常见的跨浏览器封装的函数

//跨浏览器获取视口大小 function getInner(){ if(typeof window.innerWidth!='undefined'){ return{ width:window.innerWidth, height:window.innerHeight } }else{ return{ width:document.documentElement.clientWidth, height:document.documentElement.clientHeight } }} //跨

转:sudo 的常见用法和参数选项

原文链接:http://wiki.ubuntu.org.cn/Sudo sudo,以其他用户身份执行一个命令. 用法 sudo -h | -K | -V sudo -v [-Akns] [-g group] [-h host] [-p prompt] [-u user] sudo -l [-Akns] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command] sudo [-AbEHknPS] [-r role] [-t type

Opencv常见用法和常见错误(一)

一. 读取中文的路径的图像 使用Opencv错误的读法如下: int main() { Mat img = imread("E:\示例图片/1.jpg"); namedWindow("实例"); imshow("实例",img); waitKey(); } 将会产生如下错误 ![这里写图片描述](http://img.blog.csdn.net/20150729162641428) 正确的读法如下: 在读取图像的时候加入两个头文件: #inclu

Supervisord常见用法和介绍

Supervisord是用Python实现的一款非常实用的进程管理工具.supervisord会帮你把管理的应用程序转成daemon程序,而且可以方便的通过命令开启.关闭.重启等操作,而且它管理的进程一旦崩溃会自动重启,这样就可以保证程序执行中断后的情况下有自我修复的功能. 介绍文章: 1.安装和详细的配置文件介绍 2.使用介绍

ios学习笔记(4)

CGRect常见用法和几个 CGRect 函数 CGRect   每个视图都使用一个边框定义其界限.这个边框指定了视图的轮廓:其位置.宽度和高度. 我们使用Core Graphics结构宋定义边框矩形.对于边框,这通常表示由原点(CGPoint,x和y)和大小(CGsize,宽度和高度)组成的CGRect矩形.下面是这些类型的简要描述. 1.CGRect CGRect结构在屏幕上定义了一个矩形.它包含原点(rect.origin)和大小(rect.size).需要了解以下CGRect函数. ·C

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

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