我是 iphone 新手。我正在做一个项目,当我点击登录屏幕中的提交按钮时,会出现一个登录屏幕,它会在一段时间后向服务器发送验证请求,它会给出响应,我正在显示该响应向用户发出警报视图。但实际问题是,当用户单击提交按钮时,我使用计时器放置一些活动指示器 1 秒,但响应在 5 秒内出现,因此活动指示器在 4 秒之前停止。那么,我该如何放置活动指示器,直到响应来自服务器端。如果有人知道这一点,请帮助我。
问问题
131 次
3 回答
1
您需要在请求未完成时显示您的“指标”
您的请求需要像这样异步:
-(void) performCheckServer // YOUR FUNCTION
{
// Construct your request
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:req delegate:self];
[connection start];
// show your indicator
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
//hide indicator
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
//hide indicator
}
其他解决方案:使用 Progress HUD
并使用功能:
[HUD showWhileExecuting:@selector(myProgressTask) onTarget:self withObject:nil animated:YES];
于 2012-05-15T14:41:14.617 回答
0
于 2012-05-15T14:37:40.543 回答
0
你在做什么使指标消失?你一定是打电话给:
[yourIndicatorView stopAnimating]
或者
[yourIndicatorView removeFromSuperview]
或者
yourIndicatorView.alpha = 0.f (<-- bad idea)
...或使活动指示器消失的东西。
您应该将该调用移动到指示请求已完成的 NSURLConnection 回调中。
于 2012-05-15T14:42:34.767 回答