无法仅旋转一个视图

时间:2012-01-23 21:15:14

标签: iphone objective-c ios xcode4.2 storyboard

我正在使用XCode 4.2(带故事板)

我试图只旋转其中一个视图(而不是所有视图),但它似乎没有工作......要么非旋转视图,要么全部旋转

我已经检查了摘要中的所有支持的视图,并且在信息中我确保应用程序“支持的界面方向”都在那里

在与视图相关的类中,我编写了旋转此特定视图的函数:

-(BOOL) shouldAutoRotateToInterfactOrientation:(UIInterfaceOrientation)interfaceOrientation{
return(interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown||
interfaceOrientation != UIInterfaceOrientationPortrait||
interfaceOrientation != UIInterfaceOrientationLandscapeRight||
interfaceOrientation != UIInterfaceOrientationLandscapeLeft)
}

当我旋转屏幕时它仍然没有旋转...任何线索?

2 个答案:

答案 0 :(得分:2)

您的方法可以简化为:

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

您要做的是在所需方向的 所有 中设置设备支持方向,然后在特定视图中使用上述方法允许您希望该视图的方向。因此,例如,如果您只想要特定视图的横向模式,则可以使用:

- (BOOL)shouldAutoRotateToInterfactOrientation:(UIInterfaceOrientation)interfaceOrientation; {
  return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

希望有帮助!

答案 1 :(得分:1)

shouldAutorotateToInterfaceOrientation中,您必须返回您想要支持的所有方向。

因此,如果您希望您的应用仅以纵向方式工作,则可以使用以下代码:

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

如果您想支持所有可能的方向:

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