uiactivityindicator при загрузке страницы - PullRequest
0 голосов
/ 01 июня 2011

Как я могу показать показатель uiactivityindicator, когда я щелкаю ячейку в моем табличном представлении, поскольку иногда для перехода к следующему представлению требуется несколько секунд, поскольку он получает информацию из Интернета.

Я успешно сделал это для своего uiwebview, но просто застрял на этом.

Спасибо.

Ответы [ 4 ]

1 голос
/ 01 июня 2011

- (void) viewDidLoad { webPage.self = делегат; индикатор.hidesWhenStopped = TRUE; }

- (void) webViewDidStartLoad: (UIWebView *) webView { [индикатор начала анимации]; }

- (void) webViewDidFinishLoad: (UIWebView *) webView { [индикатор остановки анимации]; }

1 голос
/ 02 июня 2011
-(void)viewDidAppear:(BOOL)animated {
[super viewdDidAppear:YES];
[indicator startAnimating];
NSTimer* timerLoad = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(stopIndicator) userInfo:nil repeats:NO];
}

-(void)stopIndicator {
[indicator stopAnimating];
}

Я думаю, что это даст вам время для загрузки вашего стола.

Поместите его в контроллер навигации

indicator.frame = CGRect(11,130,37,37);
[navBar addSubview:indicator];
0 голосов
/ 31 января 2013

(void) viewDidLoad {

// У нас здесь есть файл NIB, поэтому я сбросил здесь loadView. Просто убедитесь, что ваш loadView не вызывается дважды!

[super viewDidLoad];
[self loadView];

}

  • (void) loadView {

    UIView * contentView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]]; self.view = contentView;

    CGRect webFrame = [[UIScreen mainScreen] applicationFrame]; webFrame.origin.y = 0.0f; myWebView = [[UIWebView alloc] initWithFrame: webFrame]; myWebView.backgroundColor = [UIColor blueColor]; myWebView.scalesPageToFit = YES; myWebView.autoresizingMask = (UIViewAutoresizingF flexWidth | UIViewAutoresizingF flexHeight); myWebView.delegate = self; [self.view addSubview: myWebView];

    [myWebView loadRequest: [NSURLRequest requestWithURL: [NSURL URLWithString: @ "http://www.xyz.com/"]]];

    activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleGray]; activityIndicator.frame = CGRectMake (0,0, 0,0, 40,0, 40,0); activityIndicator.center = self.view.center; [self.view addSubview: ActivityIndicator]; }

  • (void) dealloc { [releaseIndicator release]; [релиз myWebView]; [супер сделка]; }

Прагма Метка WEBVIEW Методы

  • (void) webViewDidStartLoad: (UIWebView *) webView { // начинаем загрузку, показываем индикатор активности в строке состояния

    [UIApplication sharedApplication] .networkActivityIndicatorVisible = YES; [ActivityIndicator startAnimating]; }

  • (void) webViewDidFinishLoad: (UIWebView *) webView { // закончил загрузку, скрываем индикатор активности в строке состояния

    [UIApplication sharedApplication] .networkActivityIndicatorVisible = NO; [ActivityIndicator stopAnimating]; }

  • (void) webView: (UIWebView *) webView didFailLoadWithError: (NSError *) ошибка { // загрузить ошибку, скрыть индикатор активности в строке состояния

    [UIApplication sharedApplication] .networkActivityIndicatorVisible = NO;

    // сообщить об ошибке внутри веб-просмотра

    NSString * errorString = [NSString stringWithFormat: @ "

    Ошибка

    Ваш запрос% @", error.localizedDescription]; [myWebView loadHTMLString: errorString baseURL: nil];

0 голосов
/ 01 июня 2011

Вы должны выполнить выборку данных в следующем контроллере представления в отдельном потоке (в фоновом режиме), чтобы он не блокировал пользовательский интерфейс.И пока выборка данных не будет завершена, покажите индикатор активности там.

...