iOS不会旋转

时间:2011-09-02 10:32:11

标签: iphone ios uiinterfaceorientation auto-rotation

我试图将自动旋转添加到我的应用中,但遇到了困难。我可以调整所有内容(TableView和一些标签),但状态栏和我的窗口的其余部分(例如:标签栏和导航控制器)仍然是纵向的。我有一个从窗口到顶部ViewController的三个视图heirarchy,我将shouldAutorotateToInterfaceOrientation中的所有内容都设置为YES,除了在目标的Summary部分中选择了倒置之外,还有其他所有内容。的属性,但它拒绝让步。这种情况发生在模拟器和iPhone 4上。两者在XCode 4上都是4.3。我已经在视图方向上搜索了苹果文档,但是我还需要在其他地方设置它吗?

在我的Info.plist中,我有以下内容:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

2 个答案:

答案 0 :(得分:5)

我最终发现如果你有一个UITabBarController,所有的标签视图都需要支持旋转。应该通过记住来节省一些时间:

  • Nothing 将一直旋转,直到UITabBarController中的所有选项卡都支持旋转
  • 如果您在视图旋转时尝试手动调整大小,则更容易为您的笔尖中的每个控件设置大小调整属性。设置锚定位置和伸展规则,大多数事情似乎都“正常工作”。
  • 分段控件似乎需要在- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration方法
  • 中手动调整大小

答案 1 :(得分:0)

在你的问题中,你要说明

  

我将shouldAutorotateToInterfaceOrientation中的所有内容设置为YES

但我不确定你的意思。如果您支持所有方向,则只需返回YES

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    return YES;
}

这可能是你在这里所做的事情(因为你没有发布你的代码)没有按预期工作。