启用iPhone界面方向

时间:2011-01-04 23:39:52

标签: iphone ios interface uiinterfaceorientation

我正在尝试让我的应用程序在设备本身旋转时旋转界面,但我无法正确使用它。 我在plist info文件中添加了支持的接口,并为shouldRotateToInterfaceOrientation返回yes。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {  
    if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {  
        return YES;  
    } else {  
        return NO;  
    }  
} 

这是如何实施轮换的? 请帮忙!

4 个答案:

答案 0 :(得分:1)

也许尝试编辑info.plist并在那里添加您支持的方向?

选择您的项目 - >选择目标 - >信息 - >支持的界面方向,并单击加号4次以支持这些方向:

Item 0   Landscape (left home button)
Item 1   Landscape (right home button)
Item 2   Portrait (top home button)
Item 3   Portrait (bottom home button)

希望它有所帮助!

答案 1 :(得分:0)

确保已将shouldRotateToInterfaceOrientation添加到要支持不同方向的视图控制器。它不会进入app委托。

答案 2 :(得分:0)

如果你使用的是标准的UI元素,那么支持方向是直截了当的,所以假设是这样的话,你就是在正确的轨道上。

如果您正在使用UITabController,则所有视图必须支持相同的方向,否则默认为最小值(例如Portrait),我相信。

此外,如果您在视图中使用NIB,请确保在Interface Builder中配置视图时选中了“自动调整子视图”。

答案 3 :(得分:0)

如果您使用的是UITabBarController,那么您需要将其称为子视图“shouldAutoratateToInterfaceOrientation

假设您有两个标签,请尝试将以下两行添加到使用shouldAutorotateToInterfaceOrientation的类中的方法UITabViewController

[[tabBarController.viewControllers objectAtIndex:0] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
[[tabBarController.viewControllers objectAtIndex:1] shouldAutorotateToInterfaceOrientation:interfaceOrientation];

当然“tabBarController”必须通过IB链接到XIB文件中的UITabBarController

谢谢,