我有一个简单的应用程序与导航栏控制器,我想改变它的导航栏,而重写drawRect函数。我在很多地方读到,我需要做的就是把下面的代码粘贴到appDelegate上面。遗憾的是,它似乎对我没有任何帮助。一开始我试着改变导航栏的颜色,然后再给它添加图片,但是什么也没发生。我错过了什么
我想在AppDelegate上面插入这段代码:
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIColor *color = [UIColor redColor];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
CGContextFillRect(context, rect);
}
@end
和背景图片:
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
// Drawing code
UIImage *img = [UIImage imageNamed: @"13.png"];
[img drawInRect:CGRectMake(0, 0, 320, self.frame.size.height)];
}
@end
谢谢你的帮助!
这段代码在UINavigationBar
上声明了一个类别,并重新定义了其drawRect:
方法的行为。尝试将代码片段(第二个)放在应用程序委托的.m
文件的末尾。
虽然第一个应该可以工作,但另一个更干净的选择是将类别写在一个单独的文件中,并包含在应用程序委托中。
还要确保你加载的图片存在于应用包中
找到解决方案!这似乎不能在iPhone 5.0模拟器上工作!