例えば、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)に注意が必要である。