在 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];
请注意,它来自右侧而不是底部,并且新视图与旧视图重叠,因为它是基于纵向尺寸进行的。