调用Web服务后未显示活动指示符

时间:2013-12-29 12:45:37

标签: ios objective-c uiactivityindicatorview

在我的应用程序中,我需要在等待来自Web服务的响应时显示UIActivityIndicator。我使用以下代码:

  UIView *loadView = [[UIView alloc] initWithFrame:self.view.bounds];
                loadView.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.5];

                //UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] init];
                //[second.loadingView addSubview:activityView];
                //activityView.center = second.loadingView.center;

                //[second.view addSubview:second.loadingView];


                UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
                [loadView addSubview:activity];

                activity.center = loadView.center;
                [self.view addSubview:loadView];
                [self.view bringSubviewToFront:loadView];
                activity.hidesWhenStopped = YES;
                [activity setHidden:NO];

                [activity startAnimating];
    // calling My web service            
                [self callRegisterWebService:self.userFname lastName:self.userLName email:self.userEmail];

                [activity stopAnimating];
                [loadView setHidden:YES];

然而,指标没有显示.. !!我做错了什么?

1 个答案:

答案 0 :(得分:2)

您可能正在等待主线程上的http响应。尝试使用dispatch_async函数实现注册,如下所示:

[activity startAnimating];
// calling My web service
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [self callRegisterWebService:self.userFname lastName:self.userLName email:self.userEmail];
    [activity stopAnimating];
});