我想将我的UINavigationBar的背景更改为[UIColor colorWithImage:]
,但它不起作用。我错过了什么?
修改
一旦我创建了我的子类,我在哪里设置UINavigationController来使用它?
答案 0 :(得分:8)
您可以使用tintColor
属性更改UINavigationBar
的颜色,但要将图片设置为背景,您必须提供自己的UINavigationBar
drawRect:
1}}子类并覆盖- (void)drawRect:(CGRect)rect {
// Drawing code
UIImage *img = [UIImage imageNamed: @"background-image.png"];
[img drawInRect:CGRectMake(0,
0,
self.frame.size.width,
self.frame.size.height)];
}
方法,例如:
{{1}}
如果使用Interface Builder构建UI然后使用自定义导航栏,只需在Interface Builder中选择UINavigationBar元素,打开Inspector,然后在Identity选项卡中指定类字段中的UINavigationBar子类,如下所示: / p>
答案 1 :(得分:7)
要在导航栏中显示图像,您必须自己绘制图像,这实际上并不难。将其另存为UINavigationBar+CustomBackground.m
(它会向UINavigationBar添加自定义类别):
@implementation UINavigationBar (CustomBackground)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"NavMain.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end