Search code examples
iosiphoneswiftwebkitwkwebview

iOS WKWebView Status Bar Padding


I have been endlessly searching for an answer for this that works. I am trying to create a very simple WKWebView application to wrap out web app. I don't need anything fancy as navigation controls are all within the application.

Currently my ViewController.swift file looks like this:

https://gist.github.com/andrewweaver/4a0e13245f185e8f31ba812b91f7dddd

Swift version: Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42)

The issue is the padding for the status bar, I would like to adjust it so that the status bar wasn't on top of the content as it is here:

enter image description here

Any help would be greatly appreciated as I am very new to iOS development. I would also like to be able to change the status bar color, but it isn't an immediate concern at this time.


Solution

  • I solved this problem using autolayout constraints, Please check

    import UIKit
    import WebKit
    
    class ViewController: UIViewController, WKUIDelegate {
    
            var webView: WKWebView!
    
    
            override func viewDidLoad() {
                super.viewDidLoad()
    
    
                setupWebView()
    
                let url = URL(string: "https://www.google.com")
                let request = URLRequest(url: url!)
                webView.load(request)
        }
    
        func setupWebView() {
                let webConfiguration = WKWebViewConfiguration()
    
                webView = WKWebView(frame:.zero , configuration: webConfiguration)
                webView.uiDelegate = self
                //view = webView
                view.addSubview(webView)
                webView.translatesAutoresizingMaskIntoConstraints = false
    
                view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0":webView]))
                view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-20-[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0":webView]))
        }
    
            override func didReceiveMemoryWarning() {
                    super.didReceiveMemoryWarning()
                    // Dispose of any resources that can be recreated.
            }
    }
    

    enter image description here Hope it helps.