0

我的目标是在导航项的右侧添加一个按钮。问题是,我的 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 层,只有一个白色的加号。它不是显示为白色的图像,而是比它所包含的 navigationItem 的 tintColor 稍浅的灰色。有没有办法让 UIBarButtonSystemItemAdd 显示为白色而不创建自定义图像?如果没有,我做错了什么?

谢谢!

4

1 回答 1

0

UIBarButtonItemStylePlain看起来不像你想象的那样UINavigationBar,你可以使用下面的代码:

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;

干杯..

于 2013-06-12T03:23:49.050 回答