UIActivityIndicatorView внутри UIButtonBarItem не работает должным образом - PullRequest
2 голосов
/ 10 января 2010

Я пытаюсь заставить UIActivityIndicatorView работать внутри UIButtonBarItem, используя следующий код:

- (void)showActivityIndicator
{
    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
    [activityIndicator startAnimating];

    UIBarButtonItem *activityBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
    [activityIndicator release];

    self.navigationItem.rightBarButtonItem = activityBarButtonItem;
    [activityBarButtonItem release];
}

Работает так, что индикатор активности отображается, но не находится внутри панели кнопок.

У кого-нибудь есть идеи о том, что я здесь делаю неправильно?

Ответы [ 2 ]

3 голосов
/ 09 июня 2010

Это то, что я сделал, чтобы индикатор активности появился, когда я хотел, чтобы он был слева на панели инструментов:

activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0, 0.0, 25.0, 25.0)];
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
activityIndicator.hidesWhenStopped = YES;

UIBarButtonItem *btnActivity = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
NSMutableArray *tItems = [self.toolbar.items mutableCopy];
[tItems insertObject:btnActivity atIndex:0];
self.toolbar.items = tItems;
[tItems release];

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

[activityIndicator startAnimating];

И, когда я больше не хочу это видеть:

[activityIndicator stopAnimating];
0 голосов
/ 10 января 2010

но это не внутри панели кнопок

А где это?

Может быть, установленная вами рамка неверна? Вы пробовали CGRectZero или что-то случайное (например, CGRectMake(40,60,20,20))? Влияет ли это на положение индикатора?

Вы пытались установить свойство width элемента?

...