Takahiro Octopress Blog

-1から始める情弱プログラミング

iOS8で端末の向きに合わせて画像を回転させる方法について

端末の向きに合わせて画像を回転させよう!

iOS7.xまではwillRotateToInterfaceOrientationdidRotateFromInterfaceOrientationを用いて端末の向きが変わるときに、UIImageViewを回転させるといったことをやっていました。
しかし、iOS8ではこれら2つのメソッドがdeprecatedになってしまいました。
では、iOS8ではどうやって端末の向きに合わせてUIImageViewを回転させれば良いのでしょうか?

ここではAutoLayoutを利用した方法を説明します。

まず、前提として『アプリの中央に配置した正方形の画像を端末の向きに合わせて回転させる』とします。
では早速手順を説明します。

1: StoryboardにUIImageViewを配置しましょう。
UIImageViewを配置

2: UIImageViewに画像をセットしましょう。
UIImageViewに画像をセット

3: AutoLayoutを設定しましょう。
設定するAutoLayoutは、下記5点です。

  • Aspect Ratio
  • Center X Alignment
  • Center Y Alignment
  • Horizontal Space
  • Vertical Space

Horizontal Space, Vertical Space, Aspect Ratioの設定は下記のようにできます。
AutoLayoutの設定

ここで、Horizontal Space, Vertical SpaceはEqualではなくGreater設定をします。
設定は下図のようにHorizontal SpaceまたはVertical Spaceを選択して、右メニューのRelationを変更します。
AutoLayoutの設定

Center X Alignment, Center Y Alignmentの設定は下記のようにできます。
AutoLayoutの設定

全ての設定が終われば、下図のようになるでしょう。
AutoLayoutの設定

実際にアプリを起動して端末を回転させてみると、
端末がPortraitの場合は、
端末がPortraitの場合

端末がLandscapeの場合は、
端末がLandscapeの場合
となりました。

う〜ん、だいぶ楽になりましたね。
といったところで本日はここまで。

Comments