画面の回転に対応したテキストを表示する画面を作ってみます。
UIViewControllerのサブクラスを作成します。
XcodeのメニューからでFIle-New-New File...を選択します。
UIViewController subclassを選択しし、クラスを作成します。
UIViewControllerでの初期化コードは -(void) loadView メソッドにて実施しますが、デフォルトではコメントアウトされているので、コメントアウトを外してコードを追加していきます。
テキストを表示するクラスとしてUITextViewを使います。以下が初期化コードです。
CGRect rect = [[UIScreen mainScreen] applicationFrame];
textView = [[UITextView alloc] initWithFrame:rect];
textView = [[UITextView alloc] initWithFrame:rect];
表示するテキスト内容とカラー、そして編集不可としておきます。
textView.text = @"test UIViewController.";
textView.textColor = [UIColor grayColor];
textView.editable = NO;
textView.textColor = [UIColor grayColor];
textView.editable = NO;
作成したUITextViewをUIViewControllerが保持しているViewと差し替えます。
self.view = textView;
全体的にみると、loadViewメソッドは以下のような感じになります。
textView変数はヘッダにインスタンス変数として UITextViewの型で定義されています。
- (void)loadView { //create textview. CGRect rect = [[UIScreen mainScreen] applicationFrame]; textView = [[UITextView alloc] initWithFrame:rect]; textView.text = @"test UIViewController."; textView.textColor = [UIColor grayColor]; textView.editable = NO; //add to view. self.view = textView; }このままだと、画面の回転(オリエンテーション)には対応できていません。iPhoneの向きに応じて画面の内容の向きを変更するには、以下のメソッドの戻り値を変更します。iPhoneの向き(上、下、右、左)に応じて対応させたい場合に「YES」を返却するようにしますが、全ての向きに対応させるには無条件に「YES」を返却します。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations // return (interfaceOrientation == UIInterfaceOrientationPortrait); return YES; }
これで、UIViewControllerのサブクラスの作成は終わりです。
次に作成したクラスを生成し、Windowに付け加える処理を追加します。
だいたい、以下のようなコードになると思います。
//create MyViewController. myViewController = [[MyViewController alloc] init]; //add to view. [_window addSubview: myViewController.view];
実行結果。縦向き、横向きに対応出来ています。
※シュミレータでiPhoneの向きを変更するには「コマンド + → 」等で向き変更可能です。
以下、縦向き。
以下、横向きになります。横向の際にアニメーションが実行されますが、このアニメーションも自動で行われます。
0 件のコメント :
コメントを投稿