看起來,UIWebView包含在分割視圖控制器中的視圖控制器中,Web視圖將自身報告爲縱向模式,從CSS3媒體查詢的角度看,它具有768像素寬的視口。UISplitViewController中斷媒體查詢。解決方法?
我已經構建了幾個最小測試用例應用程序來重現此bug /功能。當Web視圖位於作爲窗口根視圖的視圖控制器中時,它不存在。如果分割視圖控制器位於標籤欄控制器內部,它也不存在。您甚至可以將Web視圖承載視圖控制器放置在分割視圖控制器的詳細信息窗格內的標籤欄控制器內,並避免此錯誤。
但是,我想簡單地有一個分割視圖控制器,它是窗口的根視圖,幷包含一個詳細視圖控制器,但仍然正確地承認媒體查詢。有誰知道一種方法來實現這一目標?
我試着:
- 重寫詳細視圖控制器的
parentViewController
屬性(返回nil
) - 重寫詳細視圖控制器的
splitViewController
屬性(同上) - 重寫詳細視圖控制器的
didRotateToInterfaceOrientation
方法 - 覆蓋詳細視圖控制器的方法
willRotateToIntefaceOrientation
方法
我調查:
- 使用不同的媒體查詢
- 使用第三方拆分視圖替換(例如MGSplitViewController)
- 手動注射用JavaScript
如果任何人遇到了這個問題,並想出了一個解決方案適當的樣式表,請讓我知道。
你怎麼能解決這個問題?您是否能夠通過Web視圖來「正確」佈置頁面? – tentmaking
您可以使用[縱橫比](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries#aspect-ratio)查詢(而不是方向)來微調從縱向到橫向的比例。 –