Gdy użytkownik kliknie przycisk, chciałbym, aby ten przycisk pozostawał wciśnięty przez cały czas wykonywania operacji sieciowych. Po zakończeniu operacji sieciowej chcę, aby przycisk powrócił do stanu domyślnego.
Próbowałem dzwonić - [UIButton setSelected:YES]
zaraz po naciśnięciu przycisku (z odpowiednim wywołaniem - [UIButton setSelected:NO]
po zakończeniu operacji w sieci), ale wydaje się, że nic nie daje. To samo, jeśli zadzwonię setHighlighted:
.
Przypuszczam, że mógłbym spróbować zamienić obraz tła, aby wskazać wybrany stan na czas trwania operacji sieciowej, ale wygląda to na włamanie. Jakieś lepsze sugestie?
Oto jak wygląda mój kod:
- (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;
}