在iOS 7中点击时,栏按钮颜色会发生变化

时间:2013-10-04 12:54:06

标签: ios7 uibarbuttonitem

我使用以下代码显示导航栏上的按钮:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleDone target:self action:@selector(saveData:)];
    barButton.tintColor = [UIColor colorWithRed:170/255.0 green:210/255.0 blue:87/255.0 alpha:1.0];
    barButton.tag = 001;
    [buttonArray addObject:barButton];

此代码在iOS 5和6上正常工作。但在iOS 7按钮上采用导航栏颜色。 点击任何按钮后,所有按钮的颜色都会变为浅色。

我搜索了很多小时但却找不到解决方案。

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:0)

尝试执行以下操作:

navigationController.navigationBar.tintColor = [UIColor colorWithRed:170/255.0 green:210/255.0 blue:87/255.0 alpha:1.0];

在iOS7中,您需要设置tintColor以更改条形按钮色调。

答案 1 :(得分:0)

我能够解决这个错误。我使用导航栏的背景图像,并使用BarButton颜色作为导航栏色调。我使用了以下代码:

self.navigationController.navigationBar.tintColor = [UIColor lightGrayColor]; 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"BarBackground.png"] forBarMetrics:UIBarMetricsDefault]; 

答案 2 :(得分:0)

//栏按钮正常状态标题颜色。

[cancelBarButton setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont normalStateFont]} forState:UIControlStateNormal];

// Bar button Highlighted State title color.
[cancelBarButton setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor yellowColor], NSFontAttributeName:[UIFont yourHighlightedFont]} forState:UIControlStateHighlighted];