Basically I want a custom UINavigationBar
. I don\'t want it to be \"translucent\" or anything, like the pictures app.
I basically want to completely remove
To see through the UINavigationBar
, if you choose to have one, just:
self.navigationController.navigationBar.translucent=YES;
You'll have to change the tint/color to match the background if you want it to appear like the image you posted.
At the beginning of your AppDelegate
subclass UINavigationBar
as below:
@interface CustomNavBar : UINavigationBar
@end
@implementation CustomNavBar
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"bar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
and then in the AppDelegate
do this magic:
//Set custom NavigationBar
[self.navController setValue:[[CustomNavBar alloc]init] forKeyPath:@"navigationBar"];
//Set tint to match bar.png
self.navController.navigationBar.tintColor = [UIColor colorWithRed:0.93 green:0.43 blue:0 alpha:1];
//Set font for NavigationBar
[self.navController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Comfortaa-Bold" size:20], UITextAttributeFont, nil]];
That should give you a lot more control over UINavigationController
look & feel.
Hard to tell, could be the UINavigationBar
is there and color matches the UIView
background or, there is no UINavigationBar
, just a view with custom buttons and UILabel
on top. Pick an approach and code it, or ask the question again with more specifics.
@implementation UINavigationBar (background)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"navigationbar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
basically, its not completely see through - its a visual lie. The only way to do it realistically is to override UINavigationBar
's drawRect:
method, as shown above.