将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。
答案 0 :(得分:0)
您需要将您的类设置为UIWebView的委托
YahooWebview.delegate = self
检查我的answer以获取有关代表和委派模式的详细信息。
Apple开发者提供的注意事项:在iOS 8及更高版本中运行的应用中,请使用
WKWebView
类,而非使用UIWebView
。另外,如果渲染不应运行JavaScript的文件,请考虑将WKPreferences
属性javaScriptEnabled设置为false。
答案 1 :(得分:0)
评论中提到了两个问题。
两者都可以在Stroyboard / xib文件中解决。
您的UIActivityIndicatorView
可能隐藏在UIWebView
后面。只需更改视图的位置,使其在视图中显示为heirarchy。
您可能没有将UIWebview类的委托属性设置为ViewController。右键单击webview并检查。这需要在您为委托方法内的活动指示器视图设置动画时进行设置。