我的问题很简单。我使用了导航栏的子类化方法,然后使用drawRect尝试绘制我自己的自定义导航栏图像。然而,它并没有画出我的图像。只有一个空白区域。
我的项目的结构是一个选项卡栏,每个选项卡下都有一个导航控制器。每个导航控制器都有一个导航栏,我在IB中将这些导航栏设置为我的自定义类(customNavBar)。
在我的customNavBar.h文件中,我有:
@interface customNavBar : UINavigationBar {
}
@end在我的customNavBar.m文件中有:
#import "customNavBar.h"
@implementation customNavBar
-(void) dealloc{
[super dealloc];
}
- (void)drawRect:(CGRect)rect
{
UIImage *image = [UIImage imageNamed:@"navigation_bg.png"];
[image drawInRect:CGRectMake(55, 0, self.frame.size.width, self.frame.size.height)];
}
@end你知道为什么我的图像可能不会显示,而是只显示白色背景吗?我的图像在资源文件夹下的项目中。
谢谢大家。:)
发布于 2011-04-12 14:42:12
当我在一个测试项目中实现你的代码时,我确实看到了这个图像。然而,我做到了
[image drawInRect:self.frame];图像最终覆盖了导航栏的下半部分,上半部分是白色的(就像你看到的那样)。也许你的形象被画得太低了?尝试使用rect值,或者像我一样将其设置为self.frame,看看会发生什么。如果您仍然看不到图像,请确保在界面构建器中将您导航条类实际设置为您的自定义类,且正在调用代码来绘制您的导航栏(请确保将print语句放入其中)。
发布于 2011-08-19 04:25:59
它实际上应该是:
[image drawInRect:self.bounds];别忘了Reitna-dislay的navigation_bg@2x.png
https://stackoverflow.com/questions/5631053
复制相似问题