在 iOS 7 中更改条形按钮的颜色
Posted
技术标签:
【中文标题】在 iOS 7 中更改条形按钮的颜色【英文标题】:Change the color of a bar button in iOS 7 【发布时间】:2013-09-30 07:14:20 【问题描述】:我的包含视图的 viewDidLoad 中有以下代码:
// Now add the next button
UIBarButtonItem *nextButton = [[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStylePlain target:self action:@selector(self)];
self.navigationItem.rightBarButtonItem.tintColor = [UIColor blueColor];
self.navigationItem.rightBarButtonItem = nextButton;
UINavigationController 父级在 viewDidLoad 中有这个:
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationBar.tintColor = [UIColor whiteColor];
self.navigationBar.barTintColor = [UIColor blackColor];
如何自定义 rightBar 按钮以更改背景颜色和文本颜色?
【问题讨论】:
上面的代码做了什么? 它保持栏为黑色,栏按钮为黑色,文本颜色为白色。 【参考方案1】:分配按钮后,您必须在按钮上设置 tintColor 属性。
self.navigationItem.rightBarButtonItem = nextButton;
self.navigationItem.rightBarButtonItem.tintColor = [UIColor blueColor];
而不是
self.navigationItem.rightBarButtonItem.tintColor = [UIColor blueColor];
self.navigationItem.rightBarButtonItem = nextButton;
【讨论】:
我正遇到这个问题,试图将我的栏按钮项目设置为 [UIColor YellowColor] ,但分配顺序和上面的代码不起作用。【参考方案2】:如果您希望所有条形按钮的颜色都相同,您可以使用以下代码行:
self.window.tintColor = [UIColor redColor];
在您的应用委托中。
【讨论】:
但如果您只想更改正确的,那是行不通的,对吗?我可能必须创建一个带有图像的按钮,然后将其转换为 uibarbutton 我只是在使用 self.navigationItem.leftBarButtonItem.tintColor = [UIColor redColor];它会改变按钮的颜色。你能进一步解释一下你在做什么吗?【参考方案3】:试试下面的代码,你可以设置按钮的颜色以及文本颜色
UIView *customBarButtonView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 30)];
UIButton *buttonDone = [UIButton buttonWithType:UIButtonTypeSystem];
[buttonDone addTarget:self action:@selector(doneButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
buttonDone.backgroundColor = [UIColor redColor];
// or try this one
// buttonDone.tintColor = [UIColor redColor];
buttonDone.frame = CGRectMake(10, 0, 50, 30);
buttonDone.titleLabel.textColor = [UIColor colorWithRed:141.0/255.0 green:209.0/255.0 blue:205.0/255.0 alpha:1.0];
buttonDone.titleLabel.font = [UIFont fontWithName:@"SourceSansPro-Light" size:20.0f];
[buttonDone setTitle:@"Done" forState:UIControlStateNormal];
[customBarButtonView addSubview:buttonDone];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:customBarButtonView];
【讨论】:
【参考方案4】:工作代码..试试这个。
UIImage *image = [UIImage imageNamed:@"Image.png"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
self.navigationItem.leftBarButtonItem = menuButton;
【讨论】:
以上是关于在 iOS 7 中更改条形按钮的颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何在iOS 7中更改文本UISearchBar的取消按钮颜色?