Zaczynam od prostej aplikacji, która pokazuje widok WWW za pomocą WKWebView. Wszystko buduje i działa poprawnie, z tym że zawsze jest w trybie pełnoekranowym. Najlepiej byłoby, gdyby nie rozciągał się pod paskiem stanu na iOS u góry. Należy go obniżyć o 20 pikseli, aby znajdował się pod nim. Mam obszerne wyszukiwanie rozwiązania, ale nic nie zmienia rozmiaru. Nic nie jest skonfigurowane w InterfaceBuilder, robię wszystko programowo. Używanie Swift.Próba utworzenia programowego iOS WKWebView o rozmiarze mniejszym niż ekran
Wydaje się to być czymś prostym, co zrobi wiele aplikacji z WKWebView. To powinno być proste. Prawdopodobnie brakuje mi czegoś oczywistego. Każda pomoc jest doceniana. Z góry dziękuję.
To, co mam tak daleko:
import UIKit
import WebKit
class ViewController: UIViewController, UIGestureRecognizerDelegate , UIWebViewDelegate, WKNavigationDelegate {
let url = NSURL(string:"http://stackoverflow.com")
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView(frame: CGRect(x: 0, y: 20, width: 380, height: 150), configuration: WKWebViewConfiguration())
self.view = webView
self.view.frame = webView.frame
let req = NSURLRequest(URL:url!)
webView.loadRequest(req)
self.webView.allowsBackForwardNavigationGestures = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Dziękujemy Emilio !! Poprawiony kod działa idealnie!
import UIKit
import WebKit
class ViewController: UIViewController, UIGestureRecognizerDelegate , UIWebViewDelegate, WKNavigationDelegate {
let url = NSURL(string:"http://stackoverflow.com")
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView(frame: CGRect(x: 0, y: 20, width: self.view.frame.width, height: self.view.frame.height - 20), configuration: WKWebViewConfiguration())
self.view.addSubview(webView)
let req = NSURLRequest(URL:url!)
webView.loadRequest(req)
self.webView.allowsBackForwardNavigationGestures = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}