mainwindow shouldAutoRotateToInterfaceOrientation

时间:2011-07-16 07:32:55

标签: iphone objective-c cocoa-touch uinavigationcontroller uiinterfaceorientation

在我的mainWindow.xib中,我有这个设置。

1)包含多个viewControllers的UINavigationController。

2)UIViewController包含一个包含多个按钮的scrollview。

我在Appdelegate.h中定义了它们以获取控件并将它们附加到窗口

[window addSubview:navigationController.view];      // navigationController
[window addSubview:container.view];                 //scrollview
[window makeKeyAndVisible];

现在我使用相同的标准代码进行InterfaceOrientation(在AppDelegate及其后面的所有viewControllers中。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

return (interfaceOrientation==UIInterfaceOrientationPortrait ||interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown) ? YES : NO;

}

NavigationController及其后续的viewControllers按预期旋转,但scrollview没有。它的立场是固定的。

如何旋转容器。即使用按钮和navigationController滚动条,无论是使用任何If语句还是为scrollview定义单独的类。

1 个答案:

答案 0 :(得分:0)

如果您想在主窗口中进行方向更改事件,可以在app delegate

中使用以下方法
- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration

同时检查setAutoresizingMask:方法和相关的大小调整掩码。