繁体   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