2013-03-27 4 views
0

Я пытаюсь реализовать пользовательское изображение для панели навигации и кнопок на ней. Мне удалось получить правильную установку для моей нав фона с помощью этогоизменить фон кнопки назад на то же, что и на панели навигации

this is what happens with the code below

 - (void)customAppearance 
{ 
    UIImage* NavBG = [UIImage imageNamed:@"header.png"]; 
    [[UINavigationBar appearance] setBackgroundImage:NavBG forBarMetrics:UIBarMetricsDefault]; 
} 

, но когда я пытаюсь сделать что-то подобное для кнопки возврата или другой кнопки все это просто смешивает вместе (я могу видеть слова кнопки возврата, но не набросок кнопки назад не присутствует)

здесь является то, что у меня есть для кнопки возврата

UIImage *backButtonBG = [[UIImage imageNamed:@"header.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonBG forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

, и я хочу, чтобы это выглядело так: what the goal is

+0

Какой файл вы пытаетесь изменить кнопку назад в? Кнопка «Назад» должна быть отредактирована в родительском файле навигации. Аналогично изменению текста кнопки. – dbDev

ответ

1

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

[[UINavigationBar appearance] setTintColor:[UIColor redColor]]; 

или вы можете использовать более точный цвет, используя значения RGB

[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:val green:val blue:val alpha:1]]; 
+0

Удивительно то, что мне нужно, так просто. Благодаря! – BluGeni

0

Я создал свою тонированную кнопку, используя пользовательское изображение (см. Код в конце). Затем просто установите leftBarButtonItem на эту кнопку.

+ (UIBarButtonItem *)createBarButtonItemWithImage:(UIImage *)normalImage highlightedImage:(UIImage *)highlightedImage 
{ 
    UIBarButtonItem *barButtonItemToReturn; 
    if (normalImage == nil && highlightedImage == nil) 
    { 
     return barButtonItemToReturn; 
    } 
    else if (normalImage != nil) 
    { 
     UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [button setImage:normalImage forState:UIControlStateNormal]; 

     if (highlightedImage != nil) 
     { 
      [button setImage:highlightedImage forState:UIControlStateHighlighted]; 
      [button setFrame:CGRectMake(0, 0, normalImage.size.width, normalImage.size.height)]; 
     } 

     barButtonItemToReturn = [[UIBarButtonItem alloc] initWithCustomView:button]; 
    } 
    return barButtonItemToReturn; 
} 

Если вы хотите добавить цель/действие, вы должны добавить его с помощью:

[((UIButton*)barButtonItem.customView) addTarget:self selector:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside]; 

Вы также можете использовать изменяемое изображение, и т.д.

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