質問: self.view.frame.size.width; [resultLabel setFrame:frame]; [self.view layoutIfNeeded]; } ``` (最後に layoutIfNeeded を呼ぶと良いという情報があったので追加しましたが、変わりませんでした) そこで、Interface Builder の画面を見ると View as iPhone7 という表示があり、クリックすると他に iPhone7 Plus, iPhoneSE, iPhone 4S が選択できることがわかり、試しに iPhoneSE を選択してコンパイルし直したら、はみ出しなどがなくなり、想定通りのレイアウトで表示されました。 ### 疑問 View as iPhone7 の部分を iPhoneSE に変更することで、iPod touch 5G で正しい表示になったのですが、この機能はあくまでもデザイン時のプレビュー機能と解釈していたのですが違うのでしょうか。 もしこの設定がコンパイル結果に影響するとなると、iPhone7 Plus, iPhone7, iPhoneSE などごとに設定を変更しなければならなくなり、おかしなことになってしまうと思います。 どのように修正するのが良いのかわからなくなってしまいました。何かアドバイスがありましたらお願いします。 ### 開発環境について 言語は Objective-C です。先日 Xcode 8.2.1 にアップデートしました。
回答: viewDidLayoutSubviewsの中での処理を見直したところ、想定通りの動きをするようになりました。 今頃iOS6.0に対応する作業をしている人は少ないと思いますが、viewDidLayoutSubviews を適切に記述する必要があるということがわかりました。