Progressbar WebView dans Swift
Je suis en train d'écrire une webapp en swift avec xcode.
J'ai une question: "Comment puis-je ajouter une progressbar qui me montre le chargement de chaque page?"
@IBOutlet var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "http://stackoverflow.com")
let request = NSURLRequest(URL: url)
webView.loadRequest(request)
}
(Désolé pour mon anglais)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver une très bonne réponse dans ce post. Vous pouvez simplement ajouter une barre de progression comme une sous-vue pour votre webview. Le principal problème est la précision de la barre de progression. La réponse proposée est de commencer par l'anime sans cesse, de le bloquer à 95% lors de leur chargement et si votre demande est complète, fermeture-éclair tout le chemin à 100%.
Voici une solution rapide:
Ajouter ces propriétés:
Ces fonctions à remplir le progrès de la vue. Vous pouvez jouer avec les paramètres:
var theBool: Bool = false var myTimer = NSTimer()
funcToCallCalledWhenUIWebViewFinishesLoading()
, est de mettre en œuvre UIWebViewDelegate dans le contrôleur et remplacer lewebViewDidFinishLoad
fonction. Vous devrez également régler le délégué de la webview pour le contrôleur pour que cela fonctionne.M'a pris âge de comprendre comment faire pour déterminer si un site web est complètement chargé et animer la barre de progression selon... après quelques hardcore googler c'est le mieux que je pouvais venir. beaucoup de gens disent beaucoup de choses en plus de ça ne m'aide pas.... ajouter et améliorer s'il vous plaît laissez-moi savoir si vous trouver quelque chose de mieux.
Je suis en utilisant ce et semble bon.
Pourquoi ne pas utiliser
loadRequest(_ request: URLRequest, progress: ((UInt, Int64, Int64) -> Swift.Void)?, success: ((HTTPURLResponse, String) -> String)?, failure: ((Error) -> Swift.Void)? = nil)