Ios 编程两个WKWebView,一个是透明覆盖
我目前正在尝试在应用程序中设置wkwebview:一个用作主Ios 编程两个WKWebView,一个是透明覆盖,ios,swift,wkwebview,Ios,Swift,Wkwebview,我目前正在尝试在应用程序中设置wkwebview:一个用作主webView,另一个默认情况下是隐藏的,在调用以显示时作为透明覆盖(加载视图)。到目前为止,似乎两者都没有显示(或者只是显示默认情况下隐藏的loadingView) ViewController.swift import UIKit import WebKit class ViewController: UIViewController, WKNavigationDelegate { var webView: WKWebV
webView
,另一个默认情况下是隐藏的,在调用以显示时作为透明覆盖(加载视图
)。到目前为止,似乎两者都没有显示(或者只是显示默认情况下隐藏的loadingView
)
ViewController.swift
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
var loadingView: WKWebView!
@IBOutlet var textField: UITextField!
override func loadView() {
view = webView
webView = WKWebView()
webView.navigationDelegate = self
webView.backgroundColor = UIColor.whiteColor()
webView.opaque = true
view = loadingView
loadingView = WKWebView()
loadingView.navigationDelegate = self
loadingView.hidden = true
loadingView.alpha = 0.5
loadingView.backgroundColor = UIColor.whiteColor()
UIApplication.sharedApplication().statusBarStyle = .Default
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL(string: "about:blank")!
webView.loadRequest(NSURLRequest(URL: url))
webView.allowsBackForwardNavigationGestures = true
let loadingURL = NSBundle.mainBundle().URLForResource("LoaderPhone", withExtension:"html")!
self.loadingView.loadRequest(NSURLRequest(URL: loadingURL))
// Notification observer for textField
self.textField.addTarget(self, action: "textFieldDidUpdate:", forControlEvents: UIControlEvents.EditingChanged)
}
func textFieldDidUpdate(textField: UITextField) {
if (textField.text!.rangeOfCharacterFromSet(NSCharacterSet.whitespaceCharacterSet()) != nil) {
guard
let text = textField.text,
query = text.stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet()),
url = NSURL(string: "https://google.com/#q=\(query)")
else { return }
loadingView.hidden = true
webView.loadRequest(NSURLRequest(URL: url))
} else {
// Validate URL
NSURL.validateUrl(textField.text, completion: { (success, urlString, error) -> Void in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
if (success) {
self.loadingView.hidden = true
let request = NSURLRequest(URL: NSURL(string: urlString!)!)
print(urlString!)
self.webView.loadRequest(request)
} else {
self.webView.stopLoading()
self.loadingView.hidden = false
print("View is hidden")
}
})
})
}
}
}
您已实例化web视图,但尚未将其添加到视图中 您需要添加:
view.addSubview(webView)
view.addSubview(loadingView)
您还需要使用以下工具创建web视图:
webView = WKWebView(frame: view.bounds, configuration: webViewConfig)
您已实例化web视图,但尚未将其添加到视图中 您需要添加:
view.addSubview(webView)
view.addSubview(loadingView)
您还需要使用以下工具创建web视图:
webView = WKWebView(frame: view.bounds, configuration: webViewConfig)
嗨,奥纳托,看起来还是不起作用。只是得到一个黑屏。您需要设置框架,否则web视图的大小为0x0。Hi@Onato似乎仍然无法工作。只是得到一个黑屏。您需要设置框架,否则web视图的大小为0x0。