1

似乎 UIWebView 包含在拆分视图控制器中的视图控制器中,Web 视图报告自己处于纵向模式,从 CSS3 媒体查询的角度来看具有 768 像素宽的视口。

我已经构建了几个最小测试用例应用程序来重现此错误/功能。当 Web 视图位于作为窗口根视图的视图控制器中时,它不存在。如果拆分视图控制器位于选项卡栏控制器内,它也不存在。您甚至可以将 web-view-bearing 视图控制器放置在拆分视图控制器的详细信息窗格内的选项卡栏控制器内,并避免此错误。

但是,我想简单地拥有一个拆分视图控制器,它是窗口的根视图,并包含一个详细视图控制器,它仍然正确地尊重媒体查询。有谁知道实现这一目标的方法?

我试过了:

  • 覆盖细节视图控制器的parentViewController属性(返回nil
  • 覆盖详细视图控制器的splitViewController属性(同上)
  • 覆盖详细视图控制器的didRotateToInterfaceOrientation方法
  • 覆盖详细视图控制器的willRotateToIntefaceOrientation方法

我正在调查:

  • 使用不同的媒体查询
  • 使用第三方拆分视图替换(例如 MGSplitViewController)
  • 使用 JavaScript 手动注入适当的样式表

如果有人遇到此问题并找到解决方案,请告诉我。

4

1 回答 1

1

事实证明,导致纵向/横向混淆的不是拆分视图控制器本身(或标签栏控制器)。

基本上,如果 UIWebView 的高度大于宽度,则操作系统会将其视为纵向模式,如果宽度大于高度,则操作系统会将其视为横向模式。

标签栏控制器的存在足以使高度 (768 - 20 - 49 = 699) 小于宽度 (1024 - 320 - 1 (gutter) = 703)。

于 2012-06-01T02:22:10.570 回答