UIWebView показывает перекрывающуюся строку состояния в ios-11, iPhone-X, Xcode-9 - PullRequest
0 голосов
/ 16 мая 2018

Я загружаю веб с помощью UIWebView, все работает отлично, за исключением того, что iphoneX обрезается по планке, где я помещаю кнопку «ОК» и метку с заголовком.

    // webView
    var webView: WKWebView!
override func viewDidLoad() {
    super.viewDidLoad()
    let myURL = URL(string: "https://google.com")
    let myRequest = URLRequest(url: myURL!)

    webView = WKWebView(frame: CGRect( x: 0, y: 60, width: self.view.frame.width, height: self.view.frame.height - 60 ), configuration: WKWebViewConfiguration() )

    //webView.backgroundColor = UIColor.blue
    self.view.addSubview(webView)

    webView.load(myRequest)
    self.webView.allowsBackForwardNavigationGestures = true

    //hide navegation bar
    self.navigationController?.setNavigationBarHidden(true, animated: true)

    // add cornerRadius to view
    navegador.layer.cornerRadius = 10

    //add observer to get estimated progress value
    self.webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil)



    }

Любые предложениячтобы решить этот тупик.

View image

1 Ответ

0 голосов
/ 19 мая 2018

Высота StatusBar в iPhoneX выше, чем в других устройствах, необходимо рассчитать эту высоту и использовать это значение для координат WebView.

  1. Добавить вид для размещения кнопки ОК:

@IBOutlet weak var myTopBar: UIView!

  1. Рассчитать высоту statusBar:

//Get height status bar let statusBarHeight = UIApplication.shared.statusBarFrame.height<br> // to see correctly on all device models the new height will be: let heightTotal = self.myTopBar.frame.height + statusBarHeight

3: в веб-представлении используйте эту высоту:

webView = WKWebView(frame: CGRect( x: 0, y: heightTotal, width: self.view.frame.width, height: self.view.frame.height - heightTotal), configuration: WKWebViewConfiguration() )
...