我试图在我的应用程序中向用户显示一个活动指示器视图,而URL正在加载到WebView中。我已经尝试过使用activity.startAnimating/activity.stopAnimating来尝试将它们放置在函数等中,但没有任何运气。在Swift中使用UIActivityIndicatorView和UIWebView
我已经能够获得的最好的活动指示器出现和动画,但是不会停止动画或隐藏一旦我的url被加载,所以它继续旋转在网页上。
在其他情况下,当试图在activity.startAnimating中移动时,遇到了“线程1:EXC_BAD_INSTRUCTION(code = EXC_I386_INVOP,subcode = 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")
}
}
而且我一直在使用不同的功能,如
webViewDidStartLoad(_ :UIWebView){
activity.startAnimating()
NSLog("Webview load has started")
}
webViewDidFinishLoad(_ :UIWebView){
activity.stopAnimating()
NSLog("Webview load had finished")
}
后外 '类HighchartsController:UIViewController的',并称UIWebViewDelegate,并在 'highchartsView.delegate =自我',并称,我该怎么办委托UIWebview?对不起,我是Swift和Xcode的新手。 – agwin27 2015-04-02 01:15:33
@ agwin27您需要将UIWebview的协议'UIWebViewDelegate'委托给您的类,并在订阅的协议中实现内部描述的函数 - UIWebViewDelegate。 – dimpiax 2016-12-16 12:53:28