xcode 4.5.1 で、シングル ビュー iOS アプリケーション プロジェクトを開始し、plist またはターゲット設定で、横向きの左右の向きのみをサポートするようにします。次にViewControllerで、これを入れます:
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"bounds: %.2f,%.2f",self.view.bounds.size.width,self.view.bounds.size.height);
NSLog(@"frame: %.2f,%.2f",self.view.frame.size.width,self.view.frame.size.height);
}
実行すると次のようになります。
bounds: 1024.00,748.00
frame: 748.00,1024.00
理由はありますか?トランジション、コアアニメーションレイヤーなどであらゆる種類の問題を引き起こしています。ビューが横になっているにもかかわらず、ビューのCALayerのようなものがまだ縦になっているようです。
編集:
次のようなことを試してみると:
CATransition* transition = [CATransition animation];
transition.duration = 2.2;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromBottom;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController popToRootViewControllerAnimated:NO];
下からではなく右から来ていることに注意してください。新しいビューは、縦方向の寸法に基づいているため、古いビューと重なっています。