Domanda

Come si aggiunge un cerchio UIActivityIndicatorView filatore in un UIBarButton, in modo che quando un utente tocca su uno di questi pulsanti della barra di navigazione, che vedono un filatore mentre il carico avviene?

È stato utile?

Soluzione

Se stai cercando di mostrare la ruota attività in un pulsante di barra di navigazione (ad esempio, si potrebbe avere un pulsante di aggiornamento sulla barra di navigazione) - è possibile creare una nuova UIBarButtonItem con una visualizzazione personalizzata è il UIActivityIndicatorView:

Objective-C

uiBusy = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
uiBusy.hidesWhenStopped = YES;
[uiBusy startAnimating];
[self.navigationItem.rightBarButtonItem initWithCustomView:uiBusy];

Swift

let uiBusy = UIActivityIndicatorView(activityIndicatorStyle: .White)
uiBusy.hidesWhenStopped = true
uiBusy.startAnimating()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: uiBusy)

Questo sovrascrive la tua rightBarButtonItem con la ruota che gira. Quando hai finito, basta ricreare il rightBarButtonItem.

Altri suggerimenti

activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.hidesWhenStopped = YES;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];

Inserire il seguente in cui è necessaria sempre:

[activityIndicator startAnimating];
[activityIndicator stopAnimating];

In realtà indicatore di attività non viene aggiunto come elemento barra degli strumenti. Si tratta di una visualizzazione secondaria di vista corrente.


    UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    [act setCenter:CGPointMake(20, 20)];
    [act startAnimating];
    [self.view addSubview:act];

Ricordate di rilasciarlo in -(void)dealloc.

Con questo Metodi

-(void)startAniatingActivityIndicator{
@try {
    activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    activityIndicator.frame = CGRectMake(self.window.frame.size.width-30, 32.5, activityIndicator.bounds.size.width, activityIndicator.bounds.size.height);
    [self.window addSubview:activityIndicator];
    [activityIndicator startAnimating];
    [self.window bringSubviewToFront:activityIndicator];
}
@catch (NSException *exception) {

}
@finally {

}

}

-(void)stopAniatingActivityIndicator{
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];
activityIndicator = nil;

}

UIActivityIndicatorView è un tipo di vista. Impostare il suo telaio di essere all'interno del vostro pulsante e utilizzare -addSubview per aggiungerlo alla vista gerarchia della UIBarButton.

sto banalizzando, poiché è necessario cercare di adattarlo allo spazio (eventualmente scalando) e centrarlo ...

pseudocodice, non ho intenzione di controllare questo in Xcode, ma qualcosa di simile dovrebbe funzionare:

UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] init];
act.frame = CGMakeRect(3,3,25,25);
[myBarButton addSubview:act];
[act release];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top