2014-11-16 5 views
0

Привет, я пытаюсь установить пользовательский стиль для этого UIBarButton, но я не могу заставить его работать, как это можно сделать?Как создать пользовательский дизайн для этого UIBarButtonItemStyle?

UIBarButtonItem *theatersNav = [[UIBarButtonItem alloc] initWithTitle:@"THEATERS" 
style:(UIBarButtonItemStyleDone) target:self action:@selector(theatersNavAction:)]; 

мне удалось получить фоновые ПОС, но я не шов, чтобы иметь возможность изменить шрифт, цвет и sixe текста

UIImage *userImage = [UIImage imageNamed:@"heart-normal"]; 
UIImage *userImageHighlighted = [UIImage imageNamed:@"heart-highlighted.png"]; 

[[UIBarButtonItem appearance] setBackgroundImage:userImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

[[UIBarButtonItem appearance] setBackgroundImage:userImageHighlighted forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 
+0

Какой стиль вы хотите? Что вы пытались сделать? – rmaddy

+0

изменить шрифт и цвет – josef

+0

в различной статистике выделены, нормально – josef

ответ

1

При использовании [UIBarButtonItem appearance], в параметр применяется ко всем новым UIBarButtonItem экземплярам, ​​которые вы создаете. Он не влияет на существующие экземпляры UIBarButtonItem.

Если вы хотите применить настройку только к одной кнопке, не используйте [UIBarButtonItem appearance]. Примените настройку непосредственно к кнопке, которую вы хотите стилизовать.

Если вы хотите применить настройку ко всем кнопкам, используйте [UIBarButtonItem appearance], прежде чем создавать какие-либо кнопки.

Предполагая, что вы хотите, чтобы стиль только одну кнопку, вы хотите:

UIBarButtonItem *theatersNav = [[UIBarButtonItem alloc] initWithTitle:@"THEATERS" style:(UIBarButtonItemStyleDone) target:self action:@selector(theatersNavAction:)]; 

UIImage *userImage = [UIImage imageNamed:@"heart-normal"]; 
UIImage *userImageHighlighted = [UIImage imageNamed:@"heart-highlighted.png"]; 

[theatersNav setBackgroundImage:userImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[theatersNav setBackgroundImage:userImageHighlighted forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 
+0

приятно, спасибо, как сделать, чтобы изменить шрифт, цвет и размер на всем UIBarButtonItem? – josef

+0

Используйте метод setTitleTextAttributes: forState: '. FYI - не забудьте обновить/принять полезные ответы. – rmaddy

+0

потрясающее спасибо! могу ли я установить для всех UIBarButtonItem один и тот же шрифт или добавить шрифт для каждой кнопки? – josef

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