在我们从服务器端获得响应之前,我们如何放置活动指示

时间:2012-05-15 14:36:31

标签: iphone

我是iphone的新手。我正在做一个项目,因为有一个登录屏幕,当我在登录界面点击提交按钮时,它会向服务器发送请求进行验证一段时间后它会给出响应我正在显示警报视图中对用户的响应。但实际问题是,当用户点击提交按钮时,我使用计时器放置一些活动指示器1秒,但响应时间为5秒,因此活动指示器在4秒之前停止。所以,我怎么能放置活动指示器,直到响应来自服务器端。如果有人知道这一点,请帮助我。

3 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

答案 2 :(得分:0)

你正在做什么让指标消失?你必须要打电话:

[yourIndicatorView stopAnimating]

[yourIndicatorView removeFromSuperview]

yourIndicatorView.alpha = 0.f (<-- bad idea)

...或某些使活动指标消失。

您应该将该调用移动到指示请求已完成的NSURLConnection回调中。