簡體   English   中英

iPhone XR 中的 WKWebView 重疊狀態欄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM