忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/04/24 (Wed) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2009/07/02 (Thu) / 編集
注意:以下は個人的なメモです、まとはずれな場合もあります。

iPhoneではGUIをWindowとViewとSubViewという区分で扱うっぽい

Window(UIWindow)がまず始めにあって、xxxDelegate.mでView(UIView)を呼び出し(addSubView)している。
- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
}

ややこしいのがここから、個人的には「画面全体を定義するのがViewだ」とおもってたんだけど、、、
実はボタン(UIButton)やラベル(UILabel)などのGUI部品もUIVewクラスのお仲間だったりするらしく、これらのGUI部品を配置する時もaddSubViewするらしい。
//(1)GUI部品(ここではボタン(UIButton))を生成し
UIButton *infoButton = 
	[[UIButton buttonWithType:UIButtonTypeInfoLight]
		initWithFrame:CGRectMake(10, 10, 10, 10)];
//(2)設定とかして
	[infoButton addTarget:(id)self action:@selector(infoButtonAction:) forControlEvents:UIControlEventTouchUpInside];
//(3)自分自身(ここでいう「自分」はUIViewController)のviewにaddSubViewすると表示される。
	[self.view addSubview:infoButton];

ちなみに上はソースコード上からGUI部品を追加する方法、nibをInterfaceBuilderとかで編集してももちろんOKだったり。
nibファイルの編集はGUIでできるので実際にどんな見た目になるかみながら部品を配置できるけど細かい設定の仕方がよくわからない。
ソースコード上からやると細かい設定はできるが配置する座標なんかも入力しないといけないのでめんどい。


話を少し戻すと、Windowの上にWindow全体を覆うView(勝手にRootViewと命名)を配置→RootViewの上にGUI部品を置くって感じがデフォっぽい(たぶん)
Viewを切り替えるにはこのRootViewの上にSubView1をaddSubViewする、SubViewをいろいろ変更するにはSubView1をremoveしてSubView2をaddSubViewするとかそんなん?
-(void)showRightView{
//nowView = 現在表示中のView
//rightViewController = 今から表示したいViewのController
 NSLog(@"[Public:showRightView]");
 //現在一番上にあるViewを削除
 [nowView removeFromSuperview];
 //右回転させる
 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
 //RootViewに追加(一番上に表示)
 [rootViewController.view addSubview:rightViewController.view];
 //実行
 [UIView commitAnimations];
 //現在のViewとして登録
 nowView = rightViewController.view;
}

拍手[0回]

PR
忍者ブログ [PR]