画面の回転に非対応かつ好きなViewだけ回転させる方法。

こんにちは、JAGA(ja_gaimopotato)です。

基本的には画面を回転したくないけれど、一部のViewのみ回転させたいという場合にはshouldAutorotateメソッドをオーバーライドして、NOを返しつつ、一部のUIViewのみ回転させるという方法で解決できます。

例えばカメラアプリなどで、ボタンなどを部分的に回転させたい場合、このメソッド内で回転のアニメーション処理を行います。

やってみた

コードはこんな感じです。

- (BOOL)shouldAutorotate{

  switch ([[UIDevice currentDevice]orientation]) {

     case UIDeviceOrientationPortrait:
         // ホームボタンが下

         break;
     case UIDeviceOrientationLandscapeLeft:
         // ホームボタンが左の場合は回転
    CGAffineTransform rotate = CGAffineTransformMakeRotation(M_PI/2);
         view.transform = rotate;
        break;
    default:
        break;
    }
    return NO;
}

とこんな感じで一部のUIViewだけ制御できます。
カメラアプリを作るときに使ってみましたが、問題なく動作しました。

iOSのアプリを開発していて、画面の回転への対応はよくあるトピックスの一つです。
回転を考慮しながら、作るのですが結構苦労することも多くもっと精進したいと思っています。

これからも更新を続けていきますので、Feedlyへの登録をお願いします!

follow us in feedly

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です