这非常令人沮丧,我搜索了很多无济于事。
我有一个按钮。当它被按下时,它会调用一个执行网络操作(NSURLRequest)的方法。
该按钮应执行以下操作:
- 按下时:显示按下状态图像,触发请求方法
- 按下后:显示按钮的禁用状态,直到方法完成请求
问题是按钮在整个请求过程中一直处于突出显示/按下状态。我附上了我目前在下面的代码。
对于按钮:
[myButton setBackgroundImage:[UIImage imageNamed:@"defaultbutton"] forState:UIControlStateNormal];
[myButton setBackgroundImage:[UIImage imageNamed:@"pressedbutton"] forState:UIControlStateHighlighted];
[myButton setBackgroundImage:[UIImage imageNamed:@"disabledbutton"] forState:(UIControlStateDisabled|UIControlStateSelected)];
[squishButton addTarget:self action:@selector(reqMethod) forControlEvents:UIControlEventTouchUpInside];
在请求开始的方法中:
-(void)reqMethod {
NSLog(@"Starting request..");
[myButton setHighlighted:NO];
[myButton setEnabled:NO];
[myButton setSelected:YES];
当请求完成时,它会隐藏普通按钮并显示一个可以正常工作的重置按钮。