Pergunta

Estou tentando fazer com que um uiactivityIndicatorview funcione dentro de um uibuttonbaritem usando o seguinte código:

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

Funciona a ponto de o indicador de atividade ser exibido, mas não está dentro de uma barra de botão.

Alguém tem alguma idéia sobre o que estou fazendo de errado aqui?

Foi útil?

Solução

Foi o que eu fiz para obter um indicador de atividade para aparecer quando eu queria que fosse no lado esquerdo de uma barra de ferramentas:

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

Em seguida, mais adiante no meu código quando quero mostrar o indicador de atividade, eu simplesmente o uso da maneira normal:

[activityIndicator startAnimating];

E, quando não quero mais ver:

[activityIndicator stopAnimating];

Outras dicas

Mas não está dentro de uma barra de botão

E onde está?

Talvez o quadro que você está configurando esteja incorreto? Você tentou CGRectZero ou algo aleatório (por exemplo CGRectMake(40,60,20,20))? Isso tem algum impacto na posição do indicador?

Você já tentou definir o width propriedade do item?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top