UIActivityIndicatorView внутри UIButtonBarItem не работает должным образом

StackOverflow https://stackoverflow.com/questions/2037949

Вопрос

Я пытаюсь заставить 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];
}

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

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

Это было полезно?

Решение

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

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];

Другие советы

но это не находится внутри панели кнопок

И где же это находится?

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top