2009-05-02 15 views
5

Sono curioso, è possibile in qualche modo intrecciare Core Animation per dare un "fade out" di un UIBarButtonItem? Ho una tabellaView che rappresento con due diverse fonti di dati. Una volta attivata una particolare fonte di dati, mi piacerebbe svanire le opzioni UIToolBar attuali e sfumare in quelle nuove.È possibile utilizzare Core Animation per sfumare un UIBarButtonItem?

Grazie per avermi indicato nella giusta direzione.

risposta

7

Se si utilizza realmente una UIToolbar (si noti la lettera "b" minuscola) e non una UINavigationBar, c'è un modo molto semplice per cambiare i pulsanti e fare in modo che la transizione svanisca automaticamente senza passare a Core Animation.

Se si utilizza Interface Builder, è necessario un riferimento alla barra degli strumenti nel codice. Creare una proprietà IBOutlet e collegare la barra degli strumenti ad esso in IB:

@property (nonatomic, retain) IBOutlet UIToolbar *toolbar; 

Questo vi permetterà di fare riferimento al UIToolbar come self.toolbar. Quindi, creare i nuovi pulsanti e aggiungerli a un NSArray e trasmettere questo ai - [UIToolbar setItems: animato:] metodo come segue:

UIBarButtonItem *newItem = [[[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
           target:self 
           action:@selector(handleTap:)] autorelease]; 
NSArray *newButtons = [NSArray arrayWithObjects:newItem, nil]; 
[self.toolbar setItems:newButtons animated:YES]; 
+2

trovato questo post, mentre googling - di nota: c'è un '[sé. navigationItem setLeftBarButtonItem: myBarButton animato: YES] 'metodo che ho usato per questo scopo. Grazie! – taber

2

Non credo che ci sia un modo per controllare l'alfa su un UIBarButtonItem, ma la classe UIToolbar ha già un metodo per supportare ciò che si sta tentando di fare: -setItems: animato :.

Problemi correlati