2013-08-05 4 views
1

Я хочу вставить изображение в панель навигации.Как применить фоновое изображение к панели навигации

Мой код

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

Я приложил скриншот текущего вывода. Это из-за большого размера изображения?

enter image description here

Но мой желаемый выход enter image description here

+2

Ну да .... Вы должны уменьшить размер – IronManGill

+0

Нет это не должно быть причиной для этого , –

+0

Я уверен, что это bcoz высоты изображения. Вы должны действительно уменьшить размер. Или, как говорят другие, вам нужно использовать это изображение в качестве изображения рисунка. –

ответ

0
self.navigationController.navigationBar.tintColor = [UIColor clearColor]; 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault]; 

Я надеюсь, он будет работать у

0

Использование UINavigationBar'ssetBackgroundImage: forBarMetrics: метод:

[self.navigationController.navigationBar setBackgroundImage:yourImageHere forBarMetrics:UIBarMetricsDefault]; 

Ваш UIImage должен быть appropriate height and width. Например, размер сетчатки iphone 4 составит 640 * 88 для портрета.

EDIT: Укажите здесь, если UIImageheight является bigger говорит 150 высоты пикселя он будет отображать, что много высоты и наша UINavigationBarheight является 44 pixel.

+0

Что нового в вашем ответе? Он также использовал этот метод. –

+0

в этом втором изображении, есть эти элементы с кнопками на панели справа. Как установить эти кнопки в нужном положении? – user2640613

0

вы можете установить цвет навигационной панели такие же как ваше использование изображения ниже кода, и вы можете поместить имя изображения, которое вы хотите показать в навигационной панели

self.navigationController.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bodyBg.png"]]; 
0

попробовать его с этим кодом ..

if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) 
{ 
    [navBar setBackgroundImage:[UIImage imageNamed:@"Nav.png"] forBarMetrics:UIBarMetricsDefault]; 
} 
else 
{ 
    UIImageView *imageView = (UIImageView *)[navBar viewWithTag:1];//any tag 
    if (imageView == nil) 
    { 
     imageView = [[UIImageView alloc] initWithImage: 
        [UIImage imageNamed:@"Nav.png"]]; 
     [navBar insertSubview:imageView atIndex:0]; 
     [imageView release]; 
    } 
} 

увидеть мой полный ответ по этой ссылке setting-title-for-uinavigation-bar-in-iphone

+0

в этом втором изображении, есть те кнопки с кнопками справа. Как установить эти кнопки в нужном положении? – user2640613

1

Во-первых, сделать вашу панель навигации размер изображения 1024x44 пикселей для отображения NAD сетчатка 2048x88 пикселей ,

Если у вас есть один и тот же образ для UINavigationBar на каждом контроллере представления, поставить это AppDelegate в методе didFinishLaunchingWithOptions:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav-background.png"] forBarMetrics:UIBarMetricsDefault]; 
// This will remove shadow in iOS6 
     if ([[UINavigationBar class] instancesRespondToSelector:@selector(shadowImage)]) { 
      [[UINavigationBar appearance] setShadowImage:[[[UIImage alloc] init] autorelease]]; 
     } 

А также я вижу, что вам нужно пользовательские кнопку назад, также поместить это в AppDelegate:

UIImage *backButtonNormal = [UIImage imageNamed:@"nav-back.png"]; 
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonNormal forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
+0

В этом втором изображении есть те кнопки с кнопками ... как установить эти кнопки в нужном положении? – user2640613

0

проверить эту ссылку для добавления фонового изображения в navigationbar и сначала ваш размер navigationbar набор изображений в качестве navigationbar.

check this link here

я надеюсь, что этот код полезным для вас.

0
[myNavbar setBackgroundImage:[UIImage imageNamed: @"UINavigationBarBackground.png"] 
      forBarMetrics:UIBarMetricsDefault]; 

, а также это link

0

Попробуйте этот код он работает для меня:

UIView* navigationBGView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
UIImage * targetImage = [UIImage imageNamed:@"Header_top.png"]; 
UIGraphicsBeginImageContextWithOptions(navigationBGView.frame.size, NO, 0.f); 
[targetImage drawInRect:CGRectMake(0.f, 0.f, navigationBGView.frame.size.width, navigationBGView.frame.size.height)]; 
UIImage * resultImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
navigationBGView.backgroundColor = [UIColor colorWithPatternImage:resultImage]; 
[self.navigationController.navigationBar addSubview:navigationBGView]; 
[self.navigationController.navigationBar setTintColor:[UIColor clearColor]]; 
Смежные вопросы