在我的用户单击按钮后,我希望该按钮在执行网络操作期间保持推送状态.网络操作完成后,我希望按钮返回其默认状态.
我试过调用 - [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;
}
Run Code Online (Sandbox Code Playgroud) 假设我有10个UIButton如下
我想实现单选,但我不知道该怎么做。条件如下:
首先,ALL按钮将处于选定位置(突出显示等)。当我单击另一个按钮(如VCU按钮)时,该VCU按钮将突出显示并且该ALL按钮将处于正常状态(取消突出显示)。
程式码片段:
@IBAction func buttonDisplayAction(_ sender: UIButton) {
if sender == self.buttonAll {
self.currNr = -1
self.filteredDataRoomStatus = self.dataRoomStatus
} else if sender == self.buttonVCU {
self.currNr = 1
self.isButtonSelected = true
self.filteredDataRoomStatus = filterArray(dataRoomStatus, keywords: "zistatus", searchStr: "\(self.currNr)", equalFlag: true)
} else if sender == self.buttonOC {
self.currNr = 5
self.isButtonSelected = true
self.filteredDataRoomStatus = filterArray(dataRoomStatus, keywords: "zistatus", searchStr: "\(self.currNr)", equalFlag: true)
} else if sender == …Run Code Online (Sandbox Code Playgroud)