Iphone 在UINavigationBar中更改背景图像

Iphone 在UINavigationBar中更改背景图像,iphone,uinavigationcontroller,uiimage,uinavigationbar,frame,Iphone,Uinavigationcontroller,Uiimage,Uinavigationbar,Frame,我想在下面的代码中更改导航栏中的背景图像 UINavigationBar *navBar = self.navigationController.navigationBar; UIImageView *image1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; image1.image = [UIImage imageNamed:@"image2_ram.jpg"]; [navBar setBackgroundIm

我想在下面的代码中更改导航栏中的背景图像

UINavigationBar *navBar = self.navigationController.navigationBar;

UIImageView *image1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];

image1.image = [UIImage imageNamed:@"image2_ram.jpg"];
[navBar setBackgroundImage:image1.image forBarMetrics:UIBarMetricsDefault];

图像已更改,但图像的高度未更改。为什么?

如果您也在考虑iOS 4.0,则不应这样设置

用这个

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed:@"bgTopBar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
还是iOS 5

使用此选项,无需为其指定框架,并且您不能更改超过44的高度,导航栏的默认高度为44

    UINavigationBar *navBar = self.navigationController.navigationBar;
    UIImage *image = [UIImage imageNamed:@"bgTopBar.png"];
    [navBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

你们所说的图像高度是什么意思?