2010-01-25 2 views
1

У меня большая проблема с UIWebView в iPhone SDK. У меня есть TabBarApplication с одним WebView на каждой вкладке (кроме первой).iPhone SDK - индикатор активности WebView

Потому что требуется некоторое время, чтобы загрузить представления, которые я хотел бы показать индикатор активности.

Вот код, я использую для того, чтобы сделать это:

-(void)webViewDidStartLoad:(UIWebView *) portal { 

[UIApplication sharedApplication] .networkActivityIndicatorVisible = YES; }

-(void)webViewDidFinishLoad:(UIWebView *) portal{ 
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
} 

Это не работает таким образом ... Мой WebView в первой вкладке называется «портал», поэтому я вошел в него выше, но та же проблема существует, если я использую WebView.

Любые идеи? Не может быть правдой, что это так сложно. Я искал подсказку в какое-то время и не нашел ничего, что помогло мне построить такое (подумайте, что это просто).

Большое спасибо за ваши усилия!

здоровается из Германии Tobias

ответ

6

Я обычно использую UIActivityIndicatorView.

Если у вас есть контроллер навигации в верхней части веб-просмотра он отлично работает:

-(void)webViewDidStartLoad:(UIWebView *) portal { 
UIActivityIndicatorView *actInd = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
UIBarButtonItem *actItem = [[UIBarButtonItem alloc] initWithCustomView:actInd]; 

self.navigationItem.rightBarButtonItem = actItem; 

[actInd startAnimating]; 
[actInd release]; 
[actItem release]; 
} 

Чтобы избавиться от индикатора:

-(void)webViewDidFinishLoad:(UIWebView *) portal{ 
self.navigationItem.rightBarButtonItem = nil; 
} 

Если вы не используете контроллер навигации то я просто использовал бы либо более крупный стиль, либо UIActivityIndicatorViewStyleWhiteLarge ИЛИ помещал вид поверх темного полупрозрачного изображения на экране, а затем удалял их при завершении загрузки.

+0

Спасибо за вашу быструю помощь! activityIndicator не магазин в моем App :( У вас есть какие-нибудь идеи? я просто скопировать и вставить его в точности так, как вы postet его. Есть ли проблема с моим TabBar? – Tobias

+0

Ну, что код был если вы имел UINavigationController, что ваш контроллер с веб-браузером находился внутри (что означает, что у вас будет панель навигации наверху). Если вы этого не сделаете, вам нужно будет добавить индикатор активности в другое представление, например [portal addSubview: actInd] . Какова ваша схема контроллера? UITabBarController> ???> UIWebView –

+0

Ааа, я вижу. Я создал приложение на основе TabBar и просто падает на порядок в webviews в каждом элементе. Каждая вкладка имеет свой собственный контроллер для WebView. Надеюсь, вы понимаете, что я имею в виду? Я совершенно не знаком с Objective C и iPhone SDK ... Большое спасибо за вашу помощь! PS. Мой код теперь выглядит следующим образом: [код] - (Недействительными) webViewDidStartLoad: (UIWebView *) Портал { \t UIActivityIndicatorView * actInd = [[UIActivityIndicatorView Alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge]; \t [портал addSubview: actInd]; \t [actInd startAnimating]; \t [actInd release]; } [/ code] – Tobias

Смежные вопросы