ios 界面开发中的常见元素

界面开发中的 CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view)简单记录

  • 定义
/* Points. */  
  
struct CGPoint {  
  CGFloat x;  
  CGFloat y;  
};  
typedef struct CGPoint CGPoint;  
/* Sizes. */  
  
struct CGSize {  
  CGFloat width;  
  CGFloat height;  
};  
typedef struct CGSize CGSize;  
/* Rectangles. */  
  
struct CGRect {  
  CGPoint origin;//偏移是相对父窗口的  
  CGSize size;  
};  
typedef struct CGRect CGRect;  

 

  • 常用的函数

CGPoint CGPointMake ( CGFloat x, CGFloat y ); 

CGRect CGRectMake ( CGFloat x, CGFloat y, CGFloat width, CGFloat height );

定好origin(起点,左上角),宽与高,就可以画出一个位置与大小确定的rect(矩形)这个函数被声明为内联函数

CGSize CGSizeMake ( CGFloat width, CGFloat height );

CGrect screenBounds = [ [UIScreen mainScreen]bounds];//返回的是带有状态栏的Rect  
CGRect viewBounds = [ [UIScreen mainScreen]applicationFrame];//不包含状态栏的Rect  
CGRectlnset(aRect)用来创建较小或较大的矩形(中心点相同)。使用正的内嵌值表示较小的矩形,使用负的内嵌值表示较大的矩形。 
CGRectIntersectsRect(rect 1.feet 2)可以判断矩形结构是否交叉,两个矩形对象是否重叠。 
CGRectZero是一个高度和宽度为零、位于(0,0)的矩形常量。需要创建边框但还不确定边框大小或位置时,可以使用此常量。 
 
CGRectOffset使用从源CGRect偏移的原点来创建矩形
float offset = 25.0;
CGRect r1 = CGRectMake(100, 100, 100, 100);
CGRect r2 = CGRectOffset(r1, offset, offset);

 


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");
    }
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);

 

View
UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];
//这里创建了一块画布,定义了相对于父窗口的位置, 以及大小。

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; self.window.backgroundColor = [UIColor grayColor]; //给window设置一个背景色
  • 转换  
    标准CoreGraphics调用会实时转换视图。举例来说,可以应用剪辑、旋转或其他平面几何效果。CocoaTouch支持一整套仿射转换(转换、旋转、缩放和倾斜等)。任何UIView子类的drawRect:方法都提供通过低级Core Graphics调用进行绘图的入口点。 
 
    说明  在调用Core Graphics函数时,记住Quartz从左下方建立坐标系,而UIViews的原点位于左上方。
每个视图都有一个半透明要素(alpha),其值介于不透明和透明之间。可以通过[myView  setAlpha:value]来调整它,其alpha值介于0.0(完全透明)和1.0(完全不透明)之间。 
可以为视图背景指定一个颜色。[myView setBackgroundColor:[UIColor redColor])可将视图设置为红色。 
 
  • 状态栏

    无论使用横向还是纵向模式,位于屏幕顶部的标准状态栏都占用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的布局工具时对应用程序进行布局

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。