UIActivityIndicatorView внутри UIButtonBarItem не работает должным образом
Я пытаюсь заставить 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 ответа
Вот что я сделал, чтобы индикатор активности появился, когда я хотел, чтобы он был слева на панели инструментов:
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
свойство товара?