0

我正在使用 ASIHTTPRequest 加载 JSON 数据。当用户触摸按钮时,我正在请求大量数据(这里我正在加载另一个将请求 JSON 数据的视图)。大约需要 15 秒。装载。一旦用户触摸按钮直到数据加载,我如何使用 UIActivityIndi​​catiorView。

任何人之前都这样做过或有任何提高用户性能的建议吗?

4

2 回答 2

1
    -(void) startRequest:(NSString*)username password:(NSString*)password
{
   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:mainUrl];    
    [request setDelegate:self]; 
    [request setDidFailSelector:@selector(requestFailed:)];
    [request startAsynchronous];
    [self.addSubview:self.indicator];
    [indicator startAnimating];

}

    -(void) requestFinished: (ASIHTTPRequest *) request {

    [self.indicator stopAnimating];
    [self.indicator removeFromSuperview];

}

于 2012-04-11T11:09:04.707 回答
0

这是使用 ASIHTTPRequest 和 UIActivityIndi​​cator 的示例

-(void) loadImageFromURL:(NSURL *) url withActivityIndicator:(BOOL) yesOrNo {        
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

UIActivityIndicatorView *activityIndicator = nil;

if (yesOrNo == YES) {
    activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleGray];
    [activityIndicator setCenter: self.center];
    [activityIndicator startAnimating];
    [self addSubview: activityIndicator];
}

[request setCompletionBlock: ^{
    self.image = [UIImage imageWithData: [request responseData]];
    [activityIndicator removeFromSuperview];
    [activityIndicator release];
}];

[request setFailedBlock: ^{
    [activityIndicator removeFromSuperview];
    [activityIndicator release];
}];

[request startAsynchronous];
}

@end
于 2012-04-10T17:23:00.567 回答