2011-02-07 2 views
0

Если я использую UIBarButtonSystemItemCancel, его цвет соответствует значению панели навигации. Однако в приложении «Фотографии» кнопка «Отмена» отображается синим фоном. Как я могу настроить UIBarButtonSystemItemCancel на синий фон?Изменить цвет UIBarButtonSystemItemCancel

ответ

3

ваш может использовать изображение в качестве изображения кнопки в

UIImage *buttonImage = [UIImage imageNamed:@"image.png"]; 

//create the button and assign the image 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:buttonImage forState:UIControlStateNormal]; 


//create a UIBarButtonItem with the button as a custom view 
//UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

[button addTarget:self action:@selector(clickActionItem:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button ]; 




self.navigationItem.rightBarButtonItem = rightBarButtonItem; 
+1

если вы хотите разместить кнопку бара в левом, u можете сделать это из self.navigationItem.leftBarButtonItem = переменная urbarbutton. –

+0

Спасибо, ваше предложение является хорошим обходным решением, но я надеялся, что это будет возможно без обхода – CastToInteger

2

установить theNavigationController.navigationBar.barStyle в UIBarStyleBlackTranslucent

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

и кнопки будет синим по умолчанию.

+0

К сожалению, у меня есть пользовательский оттенок для навигатора. Я пробовал это, но он не работает – CastToInteger

1

Существует лучший способ, чем использовать изображение. UISegmentedControl можно настроить так, чтобы UIBarButtonItem и UISegmentedControl имели свойство tintColor.

UISegmentedControl *button = [[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:itemTitle, nil]] autorelease]; 
    button.momentary = YES; 
    button.segmentedControlStyle = UISegmentedControlStyleBar; 
    button.tintColor = color; 
    [button addTarget:theTarget action:selector forControlEvents:UIControlEventValueChanged]; 

    UIBarButtonItem *removeButton = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease]; 

Я построил UIBarButtonItem category, который сделает это.