デバイスの回転への対応

せっかくなので、もう少し機能を追加してみよう。まず、デバイスの回転への対応だ。やはりiPhoneだったら、デバイスを横にしたら、画面も横にしたい。

今回のプロジェクトでは、回転への対応は非常に簡単だ。MemoPadViewControllerはUIViewControllerというクラスを継承しているのだが、このクラスがすでに回転対応をサポートしているのだ。このサポートを有効にするには、shouldAutorotateToInterfaceOrientation:というメソッドを使う。このメソッドも、すでにソースコードの中に含まれているはずだ。

MemoPadViewController.mから、shouldAutorotateToInterfaceOrientation:を探してほしい。コメントアウトされていると思うので、コメントを外そう。そして、次のように編集する。

MemoPadViewController.m

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // デバイスが回転したとき、ビューも回転させる
    return YES;
}

これだけでオッケーだ。これだけで、デバイスが回転すると、ナビゲーションバーやテキストビューも自動的に回転する。シミュレータで試してみよう。編集後のファイルをビルドして実行する。そして、シミュレータのハードウェアメニューにある、「半時計回りに回転」「時計回りに回転」を選択してほしい。デバイスが回転して、同時に中のビューも回転するはずだ。

文字を入力してみると、キーボードも横向きになっているはずだ。このように、デバイスの回転への対応は、非常に簡単に行える。