UIベースUI Window、UIDIew

2996 ワード

UIベースUI Window、UIDIew
PCでは、アプリケーションの多くはウィンドウ形式でコンテンツを表示し、携帯電話アプリケーションも例外ではありません.携帯電話アプリケーションでは画面にコンテンツを表示するには、まずウィンドウベアラコンテンツを作成し、iOSアプリケーションではUIWindow、UIViewを使用してコンテンツ表示を実現します.
UIWindow:
       UIWindowオブジェクトは、すべてのUIVEewのルートビューであり、管理および調整されたアプリケーションの表示、配布イベントがViewに与えられます.UIWindowクラスはUIViewのサブクラスであり,特殊なUIViewと見なすことができる.一般的なアプリケーションにはUIWindowオブジェクトが1つしかありません.UIWindowオブジェクトが複数あっても、UIWindowイベントは1つしか受け入れられません.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:
       UIDIewクラスは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;
}

上に3つのビューが追加され、view 1、view 2、view 3、view 3がview 2にネストされています.