如何为此UIBarButtonItemStyle创建自定义设计?

时间:2014-11-16 17:18:38

标签: ios objective-c uibarbuttonitem

您好我正在尝试为此UIBarButton设置自定义样式,但我无法使其工作,如何才能完成?

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"];

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

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

1 个答案:

答案 0 :(得分: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];