2010-08-25 4 views
1

Я использую вид индикатора активности в своем приложении.Как добавить индикатор активности в панель навигации?

Когда я нажимаю кнопку, я хочу, чтобы индикатор активности отображался на панели навигации в течение 10 секунд, а затем автоматически скрывался.

Я использую следующий код в связи сделал груз:

CGRect frame = CGRectMake(0.0, 0.0, 25.0, 25.0); 

self.activity = [[UIActivityIndicatorView alloc] 
      initWithFrame:frame]; 

[self.activity sizeToFit]; 

self.activity.autoresizingMask = 
    (UIViewAutoresizingFlexibleLeftMargin | 
    UIViewAutoresizingFlexibleRightMargin | 
    UIViewAutoresizingFlexibleTopMargin | 
    UIViewAutoresizingFlexibleBottomMargin); 

UIBarButtonItem *loadingView = [[UIBarButtonItem alloc] initWithCustomView:self.activity]; 
loadingView.target = self; 
self.navigationItem.rightBarButtonItem = loadingView; 

И в действии кнопки Я только начинаю индикатор:

[self.activity startanimating]; 

Но я не могу увидеть индикатор в панели навигации ,

Скажите, пожалуйста, есть ли какие-либо проблемы в моем коде ...

ответ

0

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

UIActivityIndicatorView *test = (UIActivityIndicatorView*)self.navigationItem.rightBarButtonItem.customView; 

[test startAnimating]; 

Очевидно, что я не использую в Ивар, потому что это не нужно. Это просто актерский состав и ваш UIViewController, и вы можете получить его очень быстро.

Надеюсь, это поможет.

5
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
UIBarButtonItem *itemIndicator = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator]; 
[self.navigationItem setLeftBarButtonItem:itemIndicator]; 
[activityIndicator startAnimating]; 
+0

Это работало для меня, однако стиль UIActivityIndicatorViewStyleWhite сделал его невидимым для моего фона navbar по умолчанию. Смена стилей на UIActivityIndicatorViewStyleGray сделала его видимым. – NSCoder

+0

вы также можете установить свойство tintColor для изменения другого цвета. –

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