プログラム / 2009/07/02 (Thu) / 編集 |
注意:以下は個人的なメモです、まとはずれな場合もあります。
iPhoneではGUIをWindowとViewとSubViewという区分で扱うっぽい
Window(UIWindow)がまず始めにあって、xxxDelegate.mでView(UIView)を呼び出し(addSubView)している。
ややこしいのがここから、個人的には「画面全体を定義するのがViewだ」とおもってたんだけど、、、
実はボタン(UIButton)やラベル(UILabel)などのGUI部品もUIVewクラスのお仲間だったりするらしく、これらのGUI部品を配置する時もaddSubViewするらしい。
ちなみに上はソースコード上からGUI部品を追加する方法、nibをInterfaceBuilderとかで編集してももちろんOKだったり。
nibファイルの編集はGUIでできるので実際にどんな見た目になるかみながら部品を配置できるけど細かい設定の仕方がよくわからない。
ソースコード上からやると細かい設定はできるが配置する座標なんかも入力しないといけないのでめんどい。
話を少し戻すと、Windowの上にWindow全体を覆うView(勝手にRootViewと命名)を配置→RootViewの上にGUI部品を置くって感じがデフォっぽい(たぶん)
Viewを切り替えるにはこのRootViewの上にSubView1をaddSubViewする、SubViewをいろいろ変更するにはSubView1をremoveしてSubView2をaddSubViewするとかそんなん?
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; }
PR
トラックバック
URL :
コメント