Nachdem mein Benutzer auf eine Schaltfläche geklickt hat, möchte ich, dass diese Schaltfläche während der Ausführung eines Netzwerkvorgangs gedrückt bleibt. Wenn der Netzwerkvorgang abgeschlossen ist, soll die Schaltfläche in den Standardzustand zurückkehren.
Ich habe versucht [UIButton setSelected:YES]
anzurufen - direkt nach dem Drücken der Taste (mit einem entsprechenden Anruf an - [UIButton setSelected:NO]
nachdem mein Netzwerkbetrieb beendet ist), aber es scheint nichts zu tun. Das Gleiche, wenn ich anrufe setHighlighted:
.
Ich nehme an, ich könnte versuchen, das Hintergrundbild auszutauschen, um einen ausgewählten Status für die Dauer der Netzwerkoperation anzuzeigen, aber das scheint ein Hack zu sein. Irgendwelche besseren Vorschläge?
So sieht mein Code aus:
- (IBAction)checkInButtonPushed
{
self.checkInButton.enabled = NO;
self.checkInButton.selected = YES;
self.checkInButton.highlighted = YES;
[self.checkInActivityIndicatorView startAnimating];
[CheckInOperation startWithPlace:self.place delegate:self];
}
- (void)checkInCompletedWithNewFeedItem:(FeedItem*)newFeedItem wasNewPlace:(BOOL)newPlace possibleError:(NSError*)error;
{
[self.checkInActivityIndicatorView stopAnimating];
self.checkInButton.enabled = YES;
self.checkInButton.selected = NO;
self.checkInButton.highlighted = NO;
}