40代からのフリーランス

Ruby on RailsとiOS(Swift、Objective-C)でスタートアップのサービス開発を支援しています。

iPhoneの向きでハマった話

今回は開発に関するお話です。

 

ちょっと理由があって

iPhoneを横向き限定で使うアプリを作ってました。

 

とは言え全部の画面が横向き限定じゃなくて

特定の画面の時のみ横向きに限定する感じです。

 

そうなると、プログラムで向きを制御します。

ここで問題が発生しました。

 

思ってるのと逆の向きになる!

思ってるのと逆の向きをあえて指定すると

思っているのと同じ向きになりました。

 

これ、バグじゃないの?

一抹の不安を抱えながら

公式のドキュメントを読みます。

 

驚愕の事実が発覚です。

意味が違うじゃん。

 

まず、ユーザーインターフェイスの向きを制限する値

landscapeRightの説明。

developer.apple.com

 

The device is in landscape mode, with the device held upright and the Home button on the right side. 

デバイスは横向きモードで、ホームボタンが右側にあると書いてある。

これは想定通り。

 

問題は次

現状のデバイスの向きを取得したり、設定したりするのに使う奴

landscapeRightの説明。

developer.apple.com

同じlandscapeRightだから、ホームボタンは右側って思うでしょ?

ところが

The device is in landscape mode, with the device held upright and the home button on the left side.

ホームボタンは左側って書いてある!

 

目を疑った。

さっきと意味が逆になってる。

 

歴史的な背景があると思うけど

これ誰かが間違ったのかな?

 

互換性維持しないといけないから

これ一生直せないね。

 

そもそも元の意味合いが違ったのかな?

わかりませんが気をつけましょう。