画面の回転に対応したテキストを表示する画面を作ってみます。
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 件のコメント :
コメントを投稿