我想用我自己的图像更改导航栏背景,但我真的不知道该怎么做。我在谷歌搜索它,但一些样本告诉导航栏模板。我的应用程序是一个拆分视图库。我怎么能那样做?
答案 0 :(得分:4)
如果您想在不使用类别的情况下更改导航栏的背景,这可能有助于提供这种感觉,看看它是否满足您的需求:
- (void)viewDidLoad {
[super viewDidLoad];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
//here for v, width= navBar width and height=navBar height
[v setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"a.png"]]];
[self.view addSubview:v];
[v release];
[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
}
答案 1 :(得分:2)
#import "ImageViewController.h"
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"background.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
implement this code in your .m file
@implementation ImageViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
UIImageView *backGroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
[self.navigationController.navigationBar insertSubview:backGroundView atIndex:0];
[backGroundView release];
}
@end
答案 2 :(得分:2)
您可以使用下面的代码直接在导航栏背景中添加图像
[navigation_bar setBackgroundImage:[UIImage imageNamed:@"image.jpg"] forBarMetrics:UIBarMetricsDefault];
答案 3 :(得分:0)
要将背景图像添加到UINavigationBar,您需要创建一个扩展UINavigationBar的类别。只需找到下面给出的代码并将其添加到您的实现文件中。
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"background.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
实施之后..您可以在应用程序中的任何位置调用它,您可以在每个视图上看到更改。不要忘记将图像添加到资源文件夹中。