Индикатор активности в UINavigationBar - PullRequest
2 голосов
/ 15 сентября 2011

Я прочитал несколько ответов по этой конкретной теме, но по какой-то причине мой код не работает. Это в методе делегата UISearchBarDelegate -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
UIBarButtonItem *activity = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
[[self navigationItem] setRightBarButtonItem:activity];
[activity release];
[activityIndicator startAnimating];

Любая помощь или предложения очень ценятся!

Ответы [ 3 ]

2 голосов
/ 15 сентября 2011

Я считаю, что назначенный инициализатор для UIActivityIndicatorView равен initWithActivityIndicatorStyle:.Попробуйте создать activityIndicator вот так.

UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
1 голос
/ 15 сентября 2011

попробуйте

UIView *view_actviti = [[UIView alloc] initWithFrame:CGRectMake(6,310,59,32)];
    UIActivityIndicatorView *act =[[UIActivityIndicatorView alloc] init];
    act.frame=CGRectMake(0, 0, 30, 30);
    UIBarButtonItem *actItem = [[[UIBarButtonItem alloc] initWithCustomView:view_actviti] autorelease];
    [view_actviti addSubview:act];
    self.navigationItem.rightBarButtonItem = actItem;
    [act startAnimating];
0 голосов
/ 28 марта 2012

попробуйте это:

UIActivityIndicatorView *activityIndicator = 
    [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
UIBarButtonItem * barButton = 
    [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];

[[self navigationItem] setRightBarButtonItem:barButton];

[barButton release];
[activityIndicator startAnimating];

Также используйте это для остановки и удаления ActivityIndicator:

[[self navigationItem] setLRightBarButtonItem:nil];
[activityIndicator stopAnimating];
[activityIndicator release];
...