重写UINavigationBar的drawRect函数不起作用



我有一个简单的应用程序与导航栏控制器,我想改变它的导航栏,而重写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模拟器上工作!

最新更新