2016-04-21 9 views
1
sender.setBackgroundImage(imageArray[index], forState: .Normal) 

sleep(2)   // wait before you flip back over 

sender.setBackgroundImage(cardBack, forState: .Normal) 

Der Schlaf scheint das Bild von dem Abschließen seiner Last zu stoppen. Wie kann ich auf die Fertigstellung der setBackgroundImage warten?In Swift, wie kann ich das Bild auf einer Taste ändern und es zurückstellen, nachdem der Benutzer das Original gesehen hat (dh eine Karte umdrehen)?

+1

Sie * nie * warten. Sie verwenden die Informationen *, wenn sie verfügbar sind *. Mit einem "Rückruf" zum Beispiel - UIAnimation hat einige interessante. – Moritz

+0

Warum nicht Verschluss verwenden? – iMuzahid

+0

Aber der obige Code ist in einem Rückruf. Bevor der Callback aufgerufen wurde, wurde CardBack als BackgroundImage angezeigt. Soll ich eine UIAnimation von Vorder- und Rückseitenbildern anzeigen? Und können Sie eine Animation auf einer Schaltfläche verwenden? – DumbBlonde

Antwort

0
sender.setBackgroundImage(imageArray[index], forState: .Normal) 
sender.enabled = false; 

let delay_time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 2 * Int64(NSEC_PER_SEC)) 
dispatch_after(delay_time, dispatch_get_main_queue()) { 
    sender.setBackgroundImage(cardBack, forState: .Normal) 
    sender.enabled = true; 
} 

Edit: die Taste deaktivieren, während es das Bild zeigt.

+0

Danke. Das funktioniert und ich habe von Schließung erfahren. Aber warum ist das Bild etwas transparent (oder vielleicht seine Helligkeit erhöht)? – DumbBlonde