Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 编程两个WKWebView,一个是透明覆盖_Ios_Swift_Wkwebview - Fatal编程技术网

Ios 编程两个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

我目前正在尝试在应用程序中设置wkwebview:一个用作主
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。