为什么相同的颜色在barbuttonItems上显示为不同的颜色?

时间:2013-05-09 10:21:50

标签: cocoa-touch

我目前正在开发一个iOS项目,但我遇到了一个烦人的问题。

当我将相同的颜色设置为两个不同的UIBarButtonItem时,它们会显示不同的颜色。

似乎很奇怪,有什么想法吗?

代码:

#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]


UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemSave target: self action: @selector(save)];

saveButton.tintColor = UIColorFromRGB(0xFF8100);


UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target: self action: @selector(backButtonPressed)];
backButton.tintColor = UIColorFromRGB(0xFF8100);


self.navigationItem.leftBarButtonItem = backButton;
self.navigationItem.rightBarButtonItem = saveButton;

1 个答案:

答案 0 :(得分:4)

这是因为系统提供的保存按钮(UIBarButtonSystemItemSave)与其他按钮的颜色不同,以指示按钮的确认或保存性质。

enter image description here

如果您想使用相同颜色的“保存”按钮,可以使用常规按钮并将标题设置为“保存”。

UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] 
                                    initWithTitle:@"Save" 
                                            style:UIBarButtonItemStyleBordered
                                           target:self 
                                           action:@selector(save)];
saveButton.tintColor = UIColorFromRGB(0xFF8100);