我想知道为什么基于 UITabBarController 的 iPad 项目在我指定某些选项卡应该在横向模式下自动旋转而另一个将在横向和纵向模式下自动旋转时不会自动旋转。

我用过
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
对于所有 UIViewController 并指定是否为横向 return YES; 其他明智的 return NO;
另一方面,如果 UIViewController should rotate in landscape and portrait i've just 总是返回 YES;`。

提前谢谢。

最佳答案

对于您在 tabbarcontroller 中加载的所有 UIViewController,您必须返回 True- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
笔记:
标签栏 Controller 不会自动旋转,除非它包含的所有 Controller 也自动旋转。

来自 Rotate one UIViewController in UITabBar application -->>

没有简单的方法可以在横向模式下只有一个 View ,而其他 View 处于横向模式,也没有简单的方法以编程方式切换到横向模式。

一种可能的方法是使用 CGAffineTransform 来转换 viewWillAppear 中的 View (即,就在 View 显示之前):

- (void)viewWillAppear:(BOOL)animated; {
   //-- Adjust the status bar
   [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
   //-- Rotate the view
   CGAffineTransform toLandscape = CGAffineTransformMakeRotation(degreesToRadian(90));
   toLandscape = CGAffineTransformTranslate(toLandscape, +90.0, +90.0 );
   [self.view setTransform:toLandscape];
}

关于ios - UITabBar 自动旋转问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9008199/

10-14 22:50