UINavigationBar设置图像未完全绘制

时间:2016-08-29 16:41:54

标签: ios objective-c uiviewcontroller uinavigationcontroller

我正在尝试将图像设置为导航栏的ViewController, 设置后不完全绘制到NavigationBar。 无法理解为什么会发生这种情况。

图像尺寸为90高度和宽度750

可以让我知道我需要做什么吗?

[self.navigationController setToolbarHidden:YES animated:NO];
self.title = NSLocalizedString(@"Dashboar", @"Dashboard");
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
UIImage *currentImage =  [[UIImage imageNamed:@"bg.png"]
                          resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0) resizingMode:UIImageResizingModeStretch];
[self.navigationController.navigationBar setBackgroundImage:currentImage forBarMetrics:UIBarMetricsDefault]; 

enter image description here

2 个答案:

答案 0 :(得分:1)

[self.navigationController setToolbarHidden:YES animated:NO];
self.title = NSLocalizedString(@"Dashboar", @"Dashboard");
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};

您必须为多个设备设置此背景图像的确切宽度。

if (IS_IPHONE4) {
[navController.navigationBar setBackgroundImage:[UIImage imageNamed:@"TopBar_iphone4.png"] forBarMetrics:UIBarMetricsDefault];
}
if (IS_IPHONE5) {
[navController.navigationBar setBackgroundImage:[UIImage imageNamed:@"TopBar_iphone5.png"] forBarMetrics:UIBarMetricsDefault];
}
if (IS_IPHONE6) {
[navController.navigationBar setBackgroundImage:[UIImage imageNamed:@"TopBar_iphone6.png"] forBarMetrics:UIBarMetricsDefault];
}
if (IS_IPHONE6Plus) {
[navController.navigationBar setBackgroundImage:[UIImage imageNamed:@"TopBar_iphone6plus.png"] forBarMetrics:UIBarMetricsDefault];
 }
   [[UINavigationBar appearance] setBackgroundImage:NavigationPortraitBackground forBarMetrics:UIBarMetricsDefault];

我必须为我检查这段代码。

答案 1 :(得分:0)

它看起来像一个半透明的问题,来自iOS 7+默认情况下,半透明属性为YES

禁用它
   self.navigationBar.translucent = NO;