2009-05-02 18 views
5

Tengo curiosidad, ¿es posible de alguna manera entrelazar Core Animation para dar un "fade out" de un UIBarButtonItem? Tengo un TableView que represento con dos fuentes de datos diferentes. Una vez que se desencadena una fuente de datos particular, me gustaría desvanecer las opciones actuales de UIToolBar y desvanecerme en las nuevas.¿Es posible utilizar Core Animation para atenuar un UIBarButtonItem?

Gracias por apuntarme en la dirección correcta.

Respuesta

7

Si realmente está utilizando una UIToolbar (tenga en cuenta la minúscula "b") y no una UINavigationBar, hay una manera muy fácil de cambiar los botones y hacer que la transición se desvanezca automáticamente sin caer en Core Animation.

Si está utilizando Interface Builder, necesitará una referencia a la barra de herramientas en su código. Crear una propiedad IBOutlet y vincular la barra de herramientas para que en IB:

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

Esto le permitirá hacer referencia a la UIToolbar como self.toolbar. A continuación, crear sus nuevos botones y añadirlos a un NSArray y pasar esto a los - [UIToolbar setItems: animada:] método de la siguiente manera:

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

encontrado este post mientras que buscando en Google - de nota: hay un '[auto. navigationItem setLeftBarButtonItem: myBarButton animated: YES] 'método que utilicé para este propósito. ¡Gracias! – taber

2

No creo que haya una manera de controlar el alfa en un UIBarButtonItem, pero la clase UIToolbar ya tiene un método para respaldar lo que estás tratando de hacer: -setItems: animated :.

Cuestiones relacionadas