模式视图中的UIWebview在横向模式下以纵向显示

时间:2012-10-02 02:43:39

标签: iphone objective-c uiview uiwebview modalviewcontroller

我浏览了大部分问题并尝试了几乎所有问题。但不好的是,问题仍然存在。

我有一个UIVIew,它始终以横向模式启动,我将第二个视图(detailView)呈现为全屏模式视图。

detailview上面有UIwebview

当我将detailView作为模态视图呈现时,webview将以纵向模式显示。

我在YES中返回“shouldAutoRotateToInterfaceOrientation”,并且还设置了autoresizeautoresizingMaskscalePageToFit属性。

当我旋转设备时,当detailView位于前面时,webview会安排正确显示风景。

问题出在我第一次出示modalView时。

旋转设备正在适当调整布局。

4 个答案:

答案 0 :(得分:3)

据我所知,iPhone上的ModalViews不支持Landscape View。 iPhone 5的情况可能有所不同。

但听起来你正在设置ModalView而不是WebView,我建议采用不同的方法处理它。

例如,您可以像ModalView一样为DetailView设置动画,使其以正确的方向启动

答案 1 :(得分:1)

如果您在iOS 6上运行应用程序,则需要在模态视图控制器中使用以下代码来支持横向:

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

- (BOOL) shouldAutorotate {
    return YES;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationLandscapeLeft;
}

此外,请确保您在实际设备上进行测试而不是模拟器,因为自动旋转在模拟器上的行为有所不同。

答案 2 :(得分:0)

这样可以解决问题:

CGAffineTransform transform = CGAffineTransformIdentity;
webView.transform = CGAffineTransformRotate(transform,-M_PI/2);

答案 3 :(得分:-1)

行。首先,我发布的问题并不清楚。我的问题是,当我加载webview时,它是以横向模式(CSS)加载webview元素,并以横向方式加载为纵向模式(CSS)。

原来我没有应用正确的CSS样式。

我做的修复是: 在ViewDidLoad和willAnimateRotation方法中,我向我的javascript发布通知,根据方向更新样式:)