Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to use Core Animation to fade out a UIBarButtonItem?

I'm curious, is it possible to somehow intertwine Core Animation to give a "fade out" of a UIBarButtonItem? I have a tableView which I represent with two different data sources. Once a particular data source gets triggered, I'd like to fade out the current UIToolBar options and fade in new ones.

Thanks for pointing me in the right direction.

like image 630
Coocoo4Cocoa Avatar asked May 02 '09 22:05

Coocoo4Cocoa


2 Answers

If you really are using a UIToolbar (note the lower-case "b") and not a UINavigationBar, there is a very easy way to change the buttons and have the transition automatically fade without dropping to Core Animation.

If you're using Interface Builder, you'll need a reference to the toolbar in your code. Create an IBOutlet property and link the toolbar to it in IB:

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

This will allow you to reference the UIToolbar as self.toolbar. Then, create your new buttons and add them to an NSArray and pass this to the -[UIToolbar setItems:animated:] method as follows:

UIBarButtonItem *newItem = [[[UIBarButtonItem alloc] 
                                initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
                                target:self 
                                action:@selector(handleTap:)] autorelease];
NSArray *newButtons = [NSArray arrayWithObjects:newItem, nil];
[self.toolbar setItems:newButtons animated:YES];
like image 196
phatblat Avatar answered Nov 11 '22 23:11

phatblat


I don't believe there's a way to control the alpha on a UIBarButtonItem, but the UIToolbar class already has a method to support what you're trying to do: -setItems:animated:.

like image 42
Ben Gottlieb Avatar answered Nov 11 '22 23:11

Ben Gottlieb