我想将 UINavigationBar 的背景更改为 a [UIColor colorWithImage:]
,但它不起作用。我错过了什么?
编辑:
一旦我创建了我的子类,我在哪里设置 UINavigationController 来使用它?
我想将 UINavigationBar 的背景更改为 a [UIColor colorWithImage:]
,但它不起作用。我错过了什么?
编辑:
一旦我创建了我的子类,我在哪里设置 UINavigationController 来使用它?
您可以使用该tintColor
属性来更改a的颜色UINavigationBar
,但要将图像设置为背景,您必须提供自己的UINavigationBar
子类并覆盖该drawRect:
方法,例如:
- (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)];
}
如果您使用 Interface Builder 构建您的 UI,然后使用自定义导航栏,只需在 Interface Builder 中选择 UINavigationBar 元素,打开 Inspector 并在 Identity 选项卡中的类字段中指定您的 UINavigationBar 子类,如下所示:
要在导航栏中有图像,您必须自己绘制它,这实际上并不难。将其另存为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