ios - 如何向 loadRequest 添加闭包?

标签 ios swift

我的目标是在 webView 仍在从服务器获取数据时做一个事件指示器

但我似乎无法找到这样做的方法。我能想到的唯一方法是关闭,但如何关闭?

如果我不添加任何事件指示器,那么它将只是空白屏幕,然后在一段时间后网页将显示。这不是一个好的用户体验。

这是代码

import UIKit

class SignupWebViewController: UIViewController {

    @IBOutlet var signupWebView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let url = URL(string: "http://www.example.com/merchants/signup")

        // How Do i do a closure here?
        signupWebView.loadRequest(URLRequest(url: url!))

    }
}

最佳答案

您必须实现UIWebViewDelegate 方法。在加载请求之前,执行以下操作:

signupWebView.delegate = self;

不要忘记将它添加到您的 ViewController

class SignupWebViewController: UIViewController, UIWebViewDelegate {

然后将您的逻辑添加到此方法中:

optional public func webViewDidStartLoad(_ webView: UIWebView) {
    // show your activity indicator
}

optional public func webViewDidFinishLoad(_ webView: UIWebView) {
    // hide your activity indicator
}

顺便说一下,UIWebView现在已弃用。使用 WKWebView相反。

关于ios - 如何向 loadRequest 添加闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144010/

相关文章:

ios - 如何使用 CTCallCenter :setCallEventHandler: that occurred while the app was suspended? 获取调用事件

ios - 如何删除 Vungle SDK 中的关闭按钮

enums - swift 中的 typedef 枚举

iOS App Store 获取崩溃报告

ios - xcode 8.2 中显示 'RCTLogLevel' 错误的重新定义

ios - 将 CAShapeLayer 添加为不可见的子层

ios - 如何使用swift监控电池电量和状态变化

ios - SpriteKit View 不在 ViewController 的 viewDidLoad 中呈现场景

ios - Collection View 内的按钮不会在点击时突出显示

swift - 在 Swift 中进行子类化时理解 init()