如何使用 swift 在 WKWebView 的页面中间显示活动指示器?

Posted

技术标签:

【中文标题】如何使用 swift 在 WKWebView 的页面中间显示活动指示器?【英文标题】:How to display activity indicator in the middle of the page of a WKWebView using swift? 【发布时间】:2016-06-02 14:16:25 【问题描述】:

我在 ios 应用程序中使用 WKWebView,并且设法使活动指示器出现在状态栏的左上角。如何将其显示在屏幕中间?

这是我正在使用的以下代码:

@IBOutlet var containerView : UIView! = nil

var webView: WKWebView?

override func loadView() 
    super.loadView()
    self.webView = WKWebView()
    self.view = self.webView!


override func viewDidLoad() 
    super.viewDidLoad()

    let url = NSURL(string:"https://www.example_link.com/")
    let req = NSURLRequest(URL:url!)
    self.webView!.loadRequest(req)
    webView!.navigationDelegate = self





override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.



func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) 
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true
        


func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) 
    UIApplication.sharedApplication().networkActivityIndicatorVisible = false


【问题讨论】:

使用情节提要中的UIActivityIndicatorView,将其放在中间并有一些约束(垂直/水平居中)。然后将其依赖于您的UIViewController,然后您可以在 webView 中加载请求时显示/隐藏它。 Using UIActivityIndicatorView with UIWebView in Swift的可能重复 【参考方案1】:

不,你不能。 NetworkActivityIndi​​cator 是状态栏的一部分,它的位置不能改变。您可以做的是创建一个UIActivityIndicatorView 并将其放置在您想要的任何位置,就像放置其他视图一样。

【讨论】:

我试过用 UIActivityIndi​​catorView 来做,但它不起作用。

以上是关于如何使用 swift 在 WKWebView 的页面中间显示活动指示器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 4 中从 WKWebView 获取 cookie 值?

在 Swift 中从 WKWebview 获取 HTML

如何在 Swift 3 的 WKWebView 中注入 javascript

在 Swift 中使用 WKWebView 进行身份验证

如何将 swift 对象传递给 javascript (WKWebView / swift)

如何在 Swift-Wkwebview 上自动填写用户名和密码?