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 に答える