if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
NSLog(@"Device is in portrait");
} else if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation)){
NSLog(@"Device is in landscape");
}
NSLog(@"View bounds are %@",NSStringFromCGRect(self.view.bounds));
このコードを viewDidLoad から呼び出し、続いてジェスチャ認識エンジンから呼び出します。ランドスケープ モードの場合、viewDidLoad からの出力は次のようになります。
2013-01-04 20:44:48.925 293 Calendar[2638:907] Device is in landscape
2013-01-04 20:44:48.926 293 Calendar[2638:907] View bounds are {{0, 0}, {748, 1024}}
スワイプ ジェスチャ レコグナイザから呼び出された場合の出力は次のとおりです。
2013-01-04 20:44:58.002 293 Calendar[2638:907] Device is in landscape
2013-01-04 20:44:58.004 293 Calendar[2638:907] View bounds are {{0, 0}, {1024, 748}}
デバイスが両方とも横向きの場合、寸法が反対なのはなぜですか? viewDidLoad 以外の場所でビュー ディメンションを確認する必要がありますか? それは何の出来事でしょう?
viewWillAppear を試してみたところ、viewDidLoad と同じでした。viewDidAppear を試してみたところ、ジェスチャ認識と同じでした。したがって、適切なビューのサイズを得るには、viewDidLoad の代わりにそれを使用する必要があると思います。正しい?