2012-04-10 2 views
0

Я загружаю данные JSON, используя ASIHTTPRequest. Я запрашиваю огромное количество данных, когда пользователь прикасается к кнопке (здесь я загружаю другое представление, которое запрашивает данные JSON). Это занимает около 15 секунд. загружать. Как я могу использовать UIActivityIndicatiorView, когда пользователь нажимает кнопку до тех пор, пока данные не загрузятся.Как использовать UIActivityIndicatorView при загрузке данных ASIHTTPRequest?

Кто-нибудь сделал это раньше или какое-либо предложение улучшить работу пользователя?

ответ

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]; 

}

0

Вот образец для использования ASIHTTPRequest и UIActivityIndicator

-(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 
Смежные вопросы