1

我有一个表格视图,我想制作一个自定义的 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 x 72 ......有没有办法让它适合?

4

1 回答 1

2

您的导航栏应该只有 44 像素高。最重要的是,它的最大宽度为 320 点(Retina 设备上为 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。您需要找到其他方法来处理在 5.0 以下的操作系统上设置背景。但是有很多堆栈溢出问题可以解决这个问题:)

于 2012-07-09T20:06:12.123 回答