(実際のデバイスとシミュレータで)、私は姿勢変更通知後[UIScreen mainScreen].bounds
について(デバイスとシミュレータ間の)一貫性のない情報を取得しています。オリエンテーションを変更した後、iPhoneとiPadの画面の大きさに不一致があると思いますか? iOSの9.3 iPhoneやiPad上で
私のビューコントローラは、オリエンテーションのための通知が変化したときに追加のビューのロード:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(deviceOrientationDidChangeNotification:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
向きは以下の通りである。変更の挙動:後に、iPhone上でこれを実行する
- (void) deviceOrientationDidChangeNotification:(NSNotification *) notification {
CGRect frame = [UIScreen mainScreen].bounds;
NSLog(@"Main screen is w=%f h=%f", frame.size.width, frame.size.height);
}
向きが変わると、ログメッセージはポストの方向変更画面の寸法に対応するフレームの幅と高さを示します。
iPadでこれを実行すると、向きが変更された後、の方向変更画面の寸法に対応するフレームの幅と高さがログメッセージに表示されます。
は周りコード化する必要が矛盾何かのこの種のですか?私は向きが(風景や肖像画)何かを検出しようとすることができますし、幅と高さの値を使用して意味があるが、それはかなりハッキーです。
(http://stackoverflow.com/questions/26069874/what-is-the-right-way-to-handle-orientation-changes- [このSO答えます]インIOS-8計算された上/ 27409619#27409619)であるが、画面が縦向きに回転するとき、デバイスは、それがランドスケープであり、画面が横長の向きに回転するとき、デバイスは、それがポートレートであると考えて考えています。 –