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メソッドです.
UIView:
UIDIewクラスはUIresponderから継承され、画面上で矩形領域を定義し、インタフェースを表示し、ユーザーインタフェースのインタラクションに応答するためにビューを表示します.各ビューオブジェクトは、ビュー領域の内容をレンダリングし、その領域で発生するアクションイベントを鳴ります.
コンテンツの表示とイベントの処理に加えて、ビューはサブビューをネストして管理できます.サブビューとは、別のビューオブジェクトの内部に埋め込まれたビューオブジェクトを指し、埋め込まれたビューオブジェクトは親ビューです.ビューがwindowに追加されると表示されます.iOSではどのようにビュー表示を実現しているのか、次のコードを見てください.
上に3つのビューが追加され、view 1、view 2、view 3、view 3がview 2にネストされています.
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にネストされています.