CGRect/CGPoint和CGSize解析

原创 2012年03月22日 09:42:48
每个视图都使用一个边框定义其界限。这个边框指定了视图的轮廓:其位置、宽度和高度。 

我们使用CoreGraphics结构宋定义边框矩形。对于边框,这通常表示由原点(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.feet2)可以判断矩形结构是否交叉,两个矩形对象是否重叠。 

   ·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:方法都提供通过低级CoreGraphics调用进行绘图的入口点。 

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

    5.其他视图特征 

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

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

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

   6.视图布局 

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



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

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

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

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

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

我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是装B,而是刚从vi转到xcode不久,不太习惯interface builder而已。当然如果需要我也会...

IOS开发中的CGFloat、CGPoint、CGSize和CGRect

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference...
  • niitlcj
  • niitlcj
  • 2012年04月01日 13:27
  • 9067

iOS开发-CGRect,CGSize结构体与NSString字符串互相转换

ios/oc中的结构体如何 转为  一个 NSString 方法呢? 或者一个字符串如何转换为 结构体呢? 系统已经为我们提供了很多好用的方法了! 此处列举一下: 结构体转字符串 NSString *...

iOS-CGRect、CGSize、CGPoint__UIEdgeInsets 介绍

1.CGRect      每个视图都使用一个边框定义其界限。这个边框指定了视图的轮廓:其位置、宽度和高度。      我们使用Core Graphics结构定义边框矩形。      对于边框,这通常...

CGRect使用技巧

CGRect使用技巧 作者: xuguoxing 分类: Code Snippet, CoreGraphics, Fundation Utils, IOS, UIKit 发布时间: ...

Objective-C 关于静态方法与实例方法

objective-c中非常重要的语法知识,在此归纳总结一下。 类方法,也称静态方法,指的是用static关键字修饰的方法。此方法属类本身的方法,不属于类的某一个实例(对象)。类方法中不可直接使...

UItableView 点击cell跳转到其它界面延迟bug

最近在做项目等时候遇见一个bug,点击UITableView的Cell跳转到其他界面,经常会有延时,有时四五秒,有时会有十几秒。 查看网上也没有什么详细的介绍。iOS群里问也没有问出正确的答案。最后让...

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

iphone绘图的几个基本概念CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view) 分类: iso mac 公共资源2012-06-11 ...
  • mrxiky
  • mrxiky
  • 2013年10月15日 11:36
  • 535

objective-c 中数据类型之一 几何数据类型(CGPoint,CGSize,CGRect)

objective-c 中数据类型之一 几何数据类型(CGPoint,CGSize,CGRect)

IOS 中的CGFloat、CGPoint、CGSize和CGRect

CGGeometry类定义几何元素的结构和操作几何元素的函数。 1、数据类型: CGFloat: 浮点值的基本类型 CGPoint: 表示一个二维坐标系中的点 CGSize: 表示一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CGRect/CGPoint和CGSize解析
举报原因:
原因补充:

(最多只允许输入30个字)