agw*_*n27 12 progress uiwebview uiactivityindicatorview swift
我正在尝试在将URL添加到WebView时在我的应用程序中向用户显示活动指示器视图.我尝试过使用activity.startAnimating/activity.stopAnimating并尝试将它们放在函数等中,但没有任何运气.
我能够获得的最好的是活动指示器显示和动画,但是一旦我的网址被加载就不会停止动画或隐藏,所以它继续在网页顶部旋转.
在其他情况下,当试图移动activity.startAnimating时,我遇到了"线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)"问题.我在属性检查器中检查了"在停止时隐藏",我知道我的URL是有效的,并且我已经为Interface Builder Elements创建了IBOutlets.
忍受我; 我对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")
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用不同的功能,比如
webViewDidStartLoad(_ :UIWebView){
activity.startAnimating()
NSLog("Webview load has started")
}
webViewDidFinishLoad(_ :UIWebView){
activity.stopAnimating()
NSLog("Webview load had finished")
}
Run Code Online (Sandbox Code Playgroud)
dim*_*iax 28
首先,我没有看到UIWebView的委托.实现与委派流程相关的行为.
UIWebViewDelegate有四种方法,但这种方式只使用三种:
func webViewDidStartLoad(_ webView: UIWebView) // show indicator
func webViewDidFinishLoad(_ webView: UIWebView) // hide indicator
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) // hide indicator
Run Code Online (Sandbox Code Playgroud)
func webViewDidStartLoad(webView: UIWebView!) // show indicator
func webViewDidFinishLoad(webView: UIWebView!) // hide indicator
func webView(webView: UIWebView!, didFailLoadWithError error: NSError!) // hide indicator
Run Code Online (Sandbox Code Playgroud)
*WKWebView 相当于dimpiax 答案。使用 WKNavigationDelegate
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) // show indicator
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) // hide indicator
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) // hide indicator*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17133 次 |
| 最近记录: |