您好我正在尝试为此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];
答案 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];