как изменить цвет backBarButtonItem? - PullRequest
4 голосов
/ 21 сентября 2011

В моем приложении я хочу изменить цвет bacBarButtonItem.Можно ли изменить цвет?или я должен поместить изображение этого.а в случае с изображением подскажите код, как поставить изображение.

Ответы [ 4 ]

10 голосов
/ 20 августа 2012

Если вы просто хотите изменить цвет, вы можете сделать это с помощью этой строки кода.

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

Замените redColor на следующие, чтобы настроить цвет кнопок:

colorWithRed:0/255.0 green:144/255.0 blue:200/255.0 alpha:1.0// pick your color using this

Убедитесь, что поместили это в контроллер представления, который выдвигает. Не тот контроллер вида, где вы хотите видеть этот цвет кнопки возврата.

4 голосов
/ 21 сентября 2011

Правильный ответ - правильный, но имейте в виду, что вам придется делать это в каждом контроллере представления.

Начиная с iOS5, Apple представила концепцию «внешнего вида».

- (void)setBackButtonBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0) UI_APPEARANCE_SELECTOR;

В вашем случае будет что-то подобное.

3 голосов
/ 21 сентября 2011
UIImage *image = [UIImage imageNamed:@"imageName.png"];
UIBarButtonItem* backBarButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(backButtonAction)];
self.navigationItem.leftBarButtonItem=backBarButton;
[backBarButton release];
0 голосов
/ 19 февраля 2012

Другой способ изменить цвет элемента кнопки задней панели - использовать сегментный контроль

UISegmentedControl *button = [[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Back", nil]] autorelease];
button.frame = CGRectMake(0, 0, 60, 30);
button.center = self.view.center;
button.momentary = YES;
button.segmentedControlStyle = UISegmentedControlStyleBar;
button.tintColor = [UIColor colorWithRed:0 green:0.1 blue:0.5 alpha:0];
[button addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventValueChanged];

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

Обратите внимание, что мы присваиваем желаемый цвет свойству tintColor объекта UISegmentedControl.Я получил идею с этого сайта: http://charles.lescampeurs.org/2011/02/10/tint-color-uibutton-and-uibarbuttonitem

...