天天看點

IOS學習——UI基礎UIWindow、UIView(五)

       在PC中,應用程式多是使用視窗的形式顯示内容,手機應用也不例外,手機應用中要在螢幕上顯示内容首先要建立一個視窗承載内容,iOS應用中使用UIWindow、UIView來實作内容顯示。

UIWindow:

       UIWindow對象是所有UIView的根視圖,管理和協調的應用程式的顯示、分發事件給View。UIWindow類是UIView的子類,可以看作是特殊的UIView。一般應用程式隻有一個UIWindow對象,即使有多個UIWindow對象,也隻有一個UIWindow可以接受到使用者的觸屏事件。UIWindow初始化在appDeleDgate裡面的 didFinishLaunchingWithOptions方法。

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];     // Override point for customization after application launch.     self.window.backgroundColor = [UIColor whiteColor];     [self.window makeKeyAndVisible];//顯示出UIWindow      

UIView:

       UIView類繼承自UIResponder,負責在螢幕上 定義一個矩形區域,視圖用于展示界面及響應使用者界面互動。每個視圖對象都要負責渲染視圖區域的内容,并響應該區域中發生的操作事件。

       除了顯示内容和處理事件之外,視圖可以嵌套并管理子視圖。子視圖是指嵌入到另一視圖對象内部的視圖對象,而被嵌入的視圖對象是父視圖。視圖添加到window中就會顯示出來,iOS中是怎麼實作視圖顯示的,看下面的代碼:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {          self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];     // Override point for customization after application launch.     self.window.backgroundColor = [UIColor whiteColor];               CGRect rect=[UIScreen mainScreen].applicationFrame;          NSLog(@"NSScreen application %@",NSStringFromCGRect(rect));     CGRect rect2=[UIScreen mainScreen].bounds;          NSLog(@"NSString mainScreen %@",NSStringFromCGRect(rect2));      NSLog(@"iOS_didFinishLaunchingWithOptions");          UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(60, 50, 200, 100)];     view1.backgroundColor=[UIColor greenColor];          [self.window addSubview:view1];     [view1 release];        UIView *view2=[[UIView alloc]initWithFrame:CGRectMake(60, 100, 200, 200) ];     view2.alpha=0.5;     view2.backgroundColor=[UIColor cyanColor];     [self.window addSubview:view2];                  UIView *view3=[[UIView alloc]initWithFrame:CGRectMake(100, 50, 60, 50)];     view3.backgroundColor=[UIColor colorWithRed:25/255.0 green:60/255.0 blue:150/255.0 alpha:1.0];         [view2 addSubview:view3];          [view3 release];     [view2 release];          [self.window makeKeyAndVisible];     return YES; }       

上面添加了三個視圖,view1、view2、view3,view3嵌套在view2中。

/**

* @author 張興業

*  http://blog.csdn.net/xyz_lmn

*  iOS入門群:83702688

*  android開發進階群:241395671

*  我的新浪微網誌:@張興業TBOW

*/