2012-05-05 2 views
1

Я хочу установить фоновое изображение для каждого элемента навигации (кнопка) (универсальный).Как изменить фоновое изображение для элемента навигации (кнопка)?

Как эти изображения выглядят?

Есть ли фиксированные размеры или можно создать повторяющееся фоновое изображение?

Как программно изменить это фоновое изображение?

Thank за помощью

UPDATE:

Я нашел этот код для изменения фона этой кнопки, но это не работает.

UIImage *barButton = [UIImage imageNamed:@"button_background.png"]; 
    [[UIBarButtonItem appearance] setBackgroundImage:barButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

И я не знаю, какие размеры должны быть.

P.S. Я хочу изменить фон кнопки так же, как вы можете изменить цвет фона (self.navigation.controller.nvigationBar.tintColor ..)

ответ

0

и нужно создать Пользовательские кнопки Назад Я боюсь

проверить этот код из

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
           initWithImage:[UIImage imageNamed:@"yourImage.png"] 
             style:UIBarButtonItemStyleBordered 
             target:nil 
             action:nil]; 

self.navigationItem.backBarButtonItem = backButton; 
[backButton release]; 

Позвольте мне знать, если он работал

Приветствия

+0

PLS вынимают взглянуть на обновленный первый пост. tnx – CroiOS

0

что о категориях? Например, вы можете сделать так:

@interface UIBarButtonItem(JFAdditions) 

- (id)initWithTitle:(NSString *)title image:(UIImage*)img;//add target and action if need 

@end 

@implementation UIBarButtonItem(JFAdditions) 

- (id)initWithTitle:(NSString *)title image:(UIImage*)img 
{ 
     UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
     //add background image and text on button, target and action if need, also 
    self = [self initWithCustomView:btn]; 

    return self; 
} 
2

ниже код может решить вашу проблему

UIButton *backBtn  = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *backBtnImage = [UIImage imageNamed:@"button_background.png"] ; 
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal]; 
[backBtn addTarget:self action:@selector(goback) forControlEvents:UIControlEventTouchUpInside]; 
backBtn.frame = CGRectMake(0, 0, 54, 30); 
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ; 
self.navigationItem.leftBarButtonItem = cancelButton; 
+0

Работает. Можете ли вы сказать мне, какие размеры этого фонового изображения должны быть, потому что где-то есть «Короткое название», а где-то «Очень длинное название»? И скажите мне, что PLS - это код для повторного фона или фиксированный, потому что, если он исправлен, он не универсален. tnx – CroiOS

+1

sry, но это не работает, потому что я должен установить действие, все, что мне нужно, - установить фоновое изображение для левой панели навигации. – CroiOS

Смежные вопросы