iPhone:在导航栏设置背景图片是不恰当(iphone: setting background i

2019-10-16 23:33发布

我有我想创建一个自定义uinavigationn吧我想这码表视图

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.view.bounds.size.height)];
//here for v, width= navBar width and height=navBar height
//    
[view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"newsBanner.png"]]];
[self.navigationController.navigationBar addSubview:view];

问题是图像不居中导致其尺寸为640×72 ...有没有一种方法,使之适合?

Answer 1:

您的导航栏只应该44个像素高。 最重要的是,它是最大320点宽(640像素上视网膜设备320上非高清设备)。 所以,你的图像的大小是太大了。 作出这样的具有320x44尺寸的图像,然后执行以下操作:

UINavigationBar *theBar = self.navigationController.navigationBar;
if ( [theBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
    UIImage *image = [UIImage imageNamed:@"your image here"];
    [theBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}

当然,这只能在iOS 5的工作你需要找到处理设置背景上OS 5.0以下的其他方式。 但也有很多类似的解决这一问题的堆栈溢出的问题:)



文章来源: iphone: setting background image in navigationbar is not fitting