最佳答案
在我的用户点击一个按钮后,我希望该按钮在我执行网络操作期间保持按下状态。当网络操作完成后,我希望按钮返回到默认状态。
我试过在按下按钮后立即调用-[UIButton setSelected:YES]
(在我的网络操作结束后调用-[UIButton setSelected:NO]
) ,但它似乎没有任何作用。如果我调用 setHighlighted:
也是一样的。
我想我可以尝试交换出的背景图像,以表示一个选定的状态的持续时间的网络操作,但这似乎是一个黑客。有更好的建议吗?
我的代码是这样的:
- (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;
}