Я пытаюсь отобразить представление индикатора активности в приложении для пользователей, пока URL-адрес загружается в WebView. Я пытался работать с activity.startAnimating/activity.stopAnimating и попытался разместить их в функциях и т. Д., Но им не повезло.Использование UIActivityIndicatorView с UIWebView в Swift
Лучшее, что я смог получить, - это индикатор активности, который должен появляться и анимироваться, но не останавливать анимацию или скрывать после загрузки моего URL-адреса, поэтому он продолжает вращаться поверх веб-страницы.
В других ситуациях при попытке перемещения по Activity.startAnimating я столкнулся с проблемой «Thread 1: EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)». У меня есть «Hides when Stopped», проверенный в инспекторе атрибутов, я знаю, что мой url действителен, и я создал 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")
}
вне добавления UIWebViewDelegate после 'класса HighchartsController: UIViewController' и добавление в 'highchartsView.delegate = я', как я делегировать UIWebview? Извините, я новичок в Swift и Xcode. – agwin27
@ agwin27 вам необходимо делегировать протокол UIWebview 'UIWebViewDelegate' в ваш класс и реализовать внутри описанных функций в подписанном протоколе -' UIWebViewDelegate'. – dimpiax