我浏览了大部分问题并尝试了几乎所有问题。但不好的是,问题仍然存在。
我有一个UIVIew
,它始终以横向模式启动,我将第二个视图(detailView
)呈现为全屏模式视图。
detailview
上面有UIwebview
。
当我将detailView
作为模态视图呈现时,webview将以纵向模式显示。
我在YES
中返回“shouldAutoRotateToInterfaceOrientation
”,并且还设置了autoresize
,autoresizingMask
和scalePageToFit
属性。
当我旋转设备时,当detailView
位于前面时,webview会安排正确显示风景。
问题出在我第一次出示modalView
时。
旋转设备正在适当调整布局。
答案 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发布通知,根据方向更新样式:)