当 url 加载到 WebView 中时,我试图在我的应用程序中向用户显示活动指示器视图。我尝试过使用 Activity.startAnimating/activity.stopAnimating 并尝试将它们放入函数等中,但没有任何运气。
我能得到的最好的结果是活动指示器出现并动画,但一旦加载我的网址就不会停止动画或隐藏,因此它继续在网页顶部旋转。
在其他情况下,当尝试移动 Activity.startAnimating 时,我遇到了“Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”问题。我在属性检查器中检查了“停止时隐藏”,我知道我的 url 有效,并且我已经为 Interface Builder 元素创建了 IBOutlet。
请耐心听我说;我对 Swift 还比较陌生。这是我的代码:
class HighchartsController: UIViewController {
@IBOutlet weak var HighchartsView: UIWebView!
@IBOutlet weak var activity: UIActivityIndicatorView!
@IBOutlet weak var saveButton: UIBarButtonItem!
@IBOutlet weak var highchartsMenu: UIBarButtonItem!
override func viewDidLoad()
{
super.viewDidLoad()
if self.revealViewController() != nil {
highchartsMenu.target = self.revealViewController()
highchartsMenu.action = "revealToggle:"
loadAddress()
}
}
func loadAddress() {
let url = NSURL (string: "http://google.com/flights")
let request = NSURLRequest (URL: url!)
HighchartsView.loadRequest(request)
println("Webpage Loaded Successfully")
}
}
我尝试过使用不同的功能,例如
webViewDidStartLoad(_ :UIWebView){
activity.startAnimating()
NSLog("Webview load has started")
}
webViewDidFinishLoad(_ :UIWebView){
activity.stopAnimating()
NSLog("Webview load had finished")
}
首先,我没有看到 UIWebView 的委托。
了解您与委派流程相关的行为。
UIWebView Delegate 有四种方法,但用于这种方式的方法只有三种:
Swift 4
func webViewDidStartLoad(_ webView: UIWebView) // show indicator
func webViewDidFinishLoad(_ webView: UIWebView) // hide indicator
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) // hide indicator
Swift 3
func webViewDidStartLoad(webView: UIWebView!) // show indicator
func webViewDidFinishLoad(webView: UIWebView!) // hide indicator
func webView(webView: UIWebView!, didFailLoadWithError error: NSError!) // hide indicator
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)