0

我正在使用此代码来锁定我的 iOS 应用程序的横向模式。

#pragma mark Orientation handling

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

-(BOOL)shouldAutorotate
{
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown);
}

它在 iPhone 中运行良好,但在 iPad 中无法正常运行。它不会锁定横向模式。

在这方面需要一些指导。

4

4 回答 4

1

此代码不正确:

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

AUIInterfaceOrientation不是UIInterfaceOrientationMask. 尝试这样的事情:

return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);

话虽如此,如果您尝试将应用程序锁定为横向模式,这里还有多个其他问题 - 例如,您的supportedInterfaceOrientations列表仅列出纵向模式,而不是横向模式!

于 2013-05-06T16:45:24.637 回答
0

理想情况下,只需按照评论所述将其设置在摘要选项卡中即可。如果您真的想在代码中执行此操作,那么这仅适用于您在 AppDelegate 类中设置为 rootViewController 的任何内容。

于 2013-05-06T16:02:39.127 回答
0

在 iOS 6 中,我使用:

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

如果您有 NavigationController,则可以将该方法添加到 Category。

于 2013-05-06T17:50:39.947 回答
0

我用:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
           interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
于 2013-05-06T19:31:40.200 回答