添加自定义UIBarButtonItem不起作用

时间:2013-06-12 02:36:18

标签: ios uinavigationbar uibarbuttonitem uinavigationitem

我的目标是在导航项目的右侧添加一个按钮。问题是,我的UINavigationItem上的tintColor是深灰色,但我希望按钮(UIBarButtonSystemItemAdd)是白色而不是灰色。

在阅读之后,似乎我必须制作我自己的白色自定义图像以完成此操作,我已经完成了,并且我使用以下代码进行设置:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] 
                             initWithImage:[UIImage imageNamed:@"CustomAddButton.png"]                                                                   
                                                         style:UIBarButtonItemStylePlain
                                                        target:self
                                                        action:@selector(addNewItem)];
self.navigationItem.rightBarButtonItem = addButton;

其中CustomAddButton@2x.png是40x40图像,带有alpha图层,只有白色加号。 它不是显示为白色的图像,而是比tintColor稍浅的灰色 它包含的navigationItem包含。有没有办法让UIBarButtonSystemItemAdd显示为白色而不创建自定义图像?如果没有,我是什么 做错了?

谢谢!

1 个答案:

答案 0 :(得分:0)

UIBarButtonItemStylePlainUINavigationBar上看起来不像您想象的那样,您可以使用以下代码:

UIImage* addImage = [UIImage imageNamed:@"add.png"];
CGRect frame = CGRectMake(0, 0, addImage.size.width, addImage.size.height);
UIButton *addButton = [[UIButton alloc] initWithFrame:frame];
[addButton setBackgroundImage:addImage forState:UIControlStateNormal];
[addButton addTarget:self action:@selector(addAction) forControlEvents:UIControlEventTouchUpInside];
[addButton setShowsTouchWhenHighlighted:YES];
UIBarButtonItem *addBarButtonItem =[[UIBarButtonItem alloc] initWithCustomView:addButton];
self.navigationItem.leftBarButtonItem = addBarButtonItem;

干杯......