为什么我的指标视图没有显示?

时间:2017-07-10 03:41:35

标签: ios swift

将swift3与xcode8一起使用

下面是我的viewconroller.swift

class ViewController: UIViewController {
    @IBOutlet weak var YahooWebview: UIWebView!
    @IBOutlet weak var activity: UIActivityIndicatorView!


     override func viewDidLoad() {
        super.viewDidLoad()
        let YURL = URL(string: "http://www.yahoo.com")
        let YURLRequest = URLRequest(url: YURL!)
        YahooWebview.loadRequest(YURLRequest)
    }
}

func webViewDidStartLoad(YahooWebview: UIWebView) {
    activity.startAnimating()
}

func webViewDidFinishLoad(YahooWebview: UIWebView) {
    print("show indicator")
    activity.stopAnimating()
}

为什么在加载webview时我的指示器没有显示? 我甚至看不到字符串"显示指示符"从我登录Xcode。

2 个答案:

答案 0 :(得分:0)

您需要将您的类设置为UIWebView的委托

YahooWebview.delegate = self

检查我的answer以获取有关代表和委派模式的详细信息。

Apple开发者提供的注意事项:在iOS 8及更高版本中运行的应用中,请使用 WKWebView类,而非使用UIWebView。另外,如果渲染不应运行JavaScript的文件,请考虑将WKPreferences属性javaScriptEnabled设置为false。

答案 1 :(得分:0)

评论中提到了两个问题。

两者都可以在Stroyboard / xib文件中解决。

  1. 您的UIActivityIndicatorView可能隐藏在UIWebView后面。只需更改视图的位置,使其在视图中显示为heirarchy。

  2. 您可能没有将UIWebview类的委托属性设置为ViewController。右键单击webview并检查。这需要在您为委托方法内的活动指示器视图设置动画时进行设置。