J'utilise cette bibliothèque https://github.com/ninjaprox/NVActivityIndicatorView pour afficher l'indicateur de chargement. Par défaut, il bloque tout le contrôleur de vue, mais comment puis-je afficher l'indicateur d'activité uniquement pour la vue en question. Par exemple, si un contrôleur de vue contient une vue Web et une autre vue, l'indicateur d'activité doit être uniquement pour la vue Web et je devrais pouvoir interagir avec l'autre vue.NVActivityIndicatorAfficher uniquement pour une vue particulière
class FaqViewController: UIViewController, UIWebViewDelegate
{
@IBOutlet var faqWebView: UIWebView!
static let activityData = ActivityData()
var activityIndicator : NVActivityIndicatorView!
override func viewDidLoad()
{
super.viewDidLoad()
faqWebView.delegate = self
faqWebView.loadRequest(URLRequest(url: URL(string: "https://www.google.com")!))
}
func webViewDidStartLoad(_ webView: UIWebView)
{
NVActivityIndicatorView.DEFAULT_BLOCKER_SIZE = CGSize(width: 45, height: 45)
NVActivityIndicatorPresenter.sharedInstance.startAnimating(FaqViewController.activityData)
}
func webViewDidFinishLoad(_ webView: UIWebView)
{
NVActivityIndicatorPresenter.sharedInstance.stopAnimating()
}
}
ce qui est votre 'cadre UIWebView' –
Comme cela remplit maintenant toute la vue. Mais je veux interagir avec le contrôleur de navigation à tout moment pour revenir en arrière même lorsque la page est en cours de chargement. –
modifiez le cadre de votre 'NVActivityIndicatorView' en utilisant' let x = self.view.center.x let y = self.view.center.y laissez frame = CGRect (x: (x - 50), y: (y - 50), largeur: 100, hauteur: 100) NVActivityIndicatorView (cadre: frame) ' –