2016-07-14 4 views
-3

Ich habe eine webView, wo ich Refresh/Stop für einzelne Schaltfläche anzeigen müssen, die umgekehrt ändern müssen. Wenn der Benutzer klicken Sie auf Aktualisieren der Schaltfläche muss Stopp-Symbol anzeigen, bis die webView beenden lädt und wieder anzeigen Symbol nach dem Laden der Ansicht anzeigen.Ich brauche und Ansatz, um es zu erstellen.So erstellen Sie eine Aktualisierung und stoppen für eine einzelne UIBarbutton

Antwort

0

Sie können so etwas wie dies zuerst versuchen Sie nun eine Funktion wie diese

func setRefreshItem() { 
    button.frame = CGRectMake(0, 0, 18, 25) 
    //Set backgroundImage in button for both state Normal and selected 
    button.setBackgroundImage(UIImage(named: "Refresh"), forState: UIControlState.Normal) 
    button.setBackgroundImage(UIImage(named: "Stop"), forState: UIControlState.Selected) 
    button.addTarget(self, action: #selector(self.refreshWebView(_:))",forControlEvents: UIControlEvents.TouchUpInside) 
    let rightItem:UIBarButtonItem = UIBarButtonItem(customView: button) 
    self.navigationItem.rightBarButtonItem = rightItem 
} 
eine globale Taste wie diese

var button: UIButton = UIButton() 

erklären erstellen Jetzt refreshWebView Methode in Ihrer viewController

func refreshWebView(sender: UIButton) { 
    if (sender.selected) { 
     self.webView.stopLoading() 
    } 
    else { 
     self.webView.reload() 
    } 
    sender.selected = !sender.selected 
} 

//Delegate method of webView 
func webViewDidFinishLoad(webView : UIWebView) { 
    self.buttton.selected = false 
} 
hinzufügen

Rufen Sie auch setRefreshItem in Ihrer viewDidLoad

+0

Danke für die Detail Erklärung – Alex

+0

Willkommen Kumpel :) –

1

Es gibt verschiedene Möglichkeiten, dies zu tun. Sie können eine andere Variable in Ihrem Viewcontroller namens „allowsRefresh“, erklären und dann, wenn Sie auf die Schaltfläche klicken, können Sie so etwas wie

@IBAction refreshOrStop(sender: AnyObject) { 
    if (allowsRefresh) { 
     // Do stuff that refreshes the webpage 
    } else { 
     // Do stuff that stops the refresh 
    } 
    allowsRefresh = !allowsRefresh 
    // Inverse itself. If it was true, change it false. If it was false, change it to true 
} 

Es gibt sicher bessere Namen als allowsRefresh tun, aber Sie erhalten den Punkt.

+0

danke für den Ansatz – Alex

Verwandte Themen