Sometimes it is really necessary to have a transparent UIToolBar within you iPhone app. Especially if you want to add a UIToolBar to your UINavigationBar you get some problems with overlaying backgrounds (UIBarStyleBlackOpaque did not work for a toolbar on a black opaque navigation bar).
A quick and pragmatic solution is to subclass UIToolBar and do some modifications. The following code is everything you need to get a really transparent tool bar:
@interface TransparentToolbar : UIToolbar @end @implementation TransparentToolbar // Override draw rect to avoid // background coloring - (void)drawRect:(CGRect)rect { // do nothing in here } // Set properties to make background // translucent. - (void) applyTranslucentBackground { self.backgroundColor = [UIColor clearColor]; self.opaque = NO; self.translucent = YES; } // Override init. - (id) init { self = [super init]; [self applyTranslucentBackground]; return self; } // Override initWithFrame. - (id) initWithFrame:(CGRect) frame { self = [super initWithFrame:frame]; [self applyTranslucentBackground]; return self; } @end
To apply a color to the including UIBarButtonItems you can set the bar style as usual.
That’s all for today,
Andreas
Does not work for me
Is this supposed to work in iOS 4?
sorry… forgot the drawRect method
Awesome, just wanted to add – also set 'self.barStyle = UIBarStyleBlack' if you're after a dark translucent toolbar too.
hi.
im new to iphone dev. may i know how to use this transparent class to a project ? please advise
Thanks