2015年02月24日

画面サイズは取得タイミングにより異なる

self.view.bounds.sizeで取得できる画面サイズは、取得タイミングにより異なる。

例えば、iPhone6でself.view.bounds.sizeを取得すると、下記のようになる。

viewDidLoad
self.view.bounds.size.height が 568.0
self.view.bounds.size.width が 320.0


viewWillAppear
self.view.bounds.size.height が 667.0
self.view.bounds.size.width が 375.0


ちなみに、[UIScreen mainScreen].bounds.size を取得した場合は、下記のようになる。
viewDidLoad
[UIScreen mainScreen].bounds.size.height が 667.0
[UIScreen mainScreen].bounds.size.width が 375.0


viewWillAppear
[UIScreen mainScreen].bounds.size.height が 667.0
[UIScreen mainScreen].bounds.size.width が 375.0


self.view.bounds.size は、インスタンス化された直後の初回に一度だけ実行される viewDidLoadではiPhone5sなどの4インチサイズとなってしまい、画面が表示される直前に実行されるviewWillAppearでiPhone6として正しい画面サイズが取得される。

[UIScreen mainScreen].bounds.size は、viewDidLoad、viewWillAppearのどちらでもiPhone6として正しい画面サイズが取得される。

背景画像を編集するときは、編集する場所(メソッド)と取得項目(self.view.bounds.size または [UIScreen mainScreen].bounds.size)に注意が必要である。

ラベル:Mac apple iPAD IOS iPhone
posted by mobileDeveloper at 23:41 | Comment(0) | TrackBack(0) | 開発の流れ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック