CGFloat,CGPoint,CGSize,CGRect,CGRectZero

来源:互联网 发布:mac os 变英文 编辑:程序博客网 时间:2024/05/01 22:38

[+]

1.综述

CGFloat :表示一个浮点
CGPoint:表示一个点
CGsize:标示一个矩形,但只有高度和宽度
CGRect:表示一个矩形,并且有原点的位置。
CGRectZero:是一个高度为零,宽度为零,原点位置也为零,需要创建边框但还不确定边框大小和位置时,可以使用此常量
CGPointMake,CGRectMake,CGSizeMake 用来初始化
NSStringFromPoint,NSStringFromRect,NSStringFromSize 用于将Poing,rect,size转换成字符串
code:
CGFloat f=1.2f;
CGPoint point=CGPointMake(1.2F, 2.3F);
CGRect cgrect=CGRectMake(1.2f, 2.3, 4.5, 5.6);
CGSize size=CGSizeMake(2.3, 3.2);
NSLog(@"float is %f",f);
NSLog(@"point is %@",NSStringFromPoint(point));
NSLog(@"cgrect is %@",NSStringFromRect(cgrect));
NSLog(@"size is %@",NSStringFromSize(size));
result
2013-05-09 15:29:25.522 test[1734:303] float is 1.200000
2013-05-09 15:29:25.523 test[1734:303] point is {1.2000000476837158, 2.2999999523162842}
2013-05-09 15:29:25.523 test[1734:303] cgrect is {{1.2000000476837158, 2.2999999999999998}, {4.5, 5.5999999999999996}}
2013-05-09 15:29:25.523 test[1734:303] size is {2.2999999999999998, 3.2000000000000002}

2.CGPoint和CGSize


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

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

3.视图布局

当前发布的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的布局工具时对应用程序进行布局
0 0