UIActivityIndicatorView внутри UIButtonBarItem не работает должным образом
-
19-09-2019 - |
Вопрос
Я пытаюсь заставить 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
свойство элемента?