[英]WKWebView overlapping status bar in iPhone XR
我的應用程序中有一個 WKWebView 視圖,它呈現在 Ionic 框架中開發的內容。 似乎除了 X 型號(具有更高的狀態欄)之外的所有 Apple 設備都表現良好,沒有與狀態欄重疊。 但是“X”型號有一個問題。
我已將其約束設置為:
然而,結果是這些約束沒有被強制執行,當模態 window 顯示它超出 iPhone XR、X、XS 模擬器和物理設備的狀態欄邊界時,幾乎不可能訪問“退出" 按鈕關閉模態 window。
這可能是離子代碼本身的問題,還是更像是我必須以某種方式在 XCode 中修復?
我看過: UIWebView 在 ios-11、iPhone-X、Xcode-9 中顯示重疊的狀態欄
但似乎嘗試以編程方式調整視圖不起作用,因為我試圖在我的 ViewController 的 loadView() 和 viewDidLoad() 中添加此代碼無濟於事(我在嘗試查找框架高度時得到 ERR BAD ACCESS查看以根據狀態欄調整它) - iOS 13、Swift 5:
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
#if false
webView = WKWebView(frame: .zero, configuration: webConfiguration)
#else
//First, let's find out the height of the status bar, so we don't invade it.
let winScene = UIApplication.shared
.connectedScenes
.first
let windowScene = winScene as! UIWindowScene
let sbHeight = windowScene.statusBarManager?.statusBarFrame.height
let heightTotal = view.frame.height + sbHeight!
webView = WKWebView(frame: CGRect( x: 0, y: heightTotal, width: view.frame.width, height: view.frame.height - sbHeight!), configuration: webConfiguration )
#endif
webView.uiDelegate = self
view = webView
}
想法不多了,所以任何提示都值得贊賞。
添加這樣的約束:
在 ViewController 中使用以下代碼:
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string:"https://www.apple.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
}
所以記得添加 WebKit 框架:
這樣我就可以使用 iPhone 11 Pro 模擬器正確獲取視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.