答案 0 :(得分:3)
使用UIBarButton的tintColor
为图像设置所需的颜色。
如果绝对需要使用原始图像颜色,请使用此设置图像:
[aBarButton setImage:[[UIImage imageNamed:@"xyz.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
答案 1 :(得分:2)
The docs对此有点含糊不清
条形图上显示的图像来自此图像。如果这 图像太大而无法放在条形图上,它可以缩放以适应。通常情况下, 工具栏和导航栏图像的大小为20 x 20磅。该 源图像中的alpha值用于创建图像不透明 值被忽略。
基本上这就是说你提供的图像不是实际显示的图像。相反,系统使用图像的alpha蒙版和项目的tintColor
来生成最终显示。
答案 2 :(得分:2)
以编程方式添加图片
[button setImage:[[UIImage imageNamed:@"imageName.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
如果它不起作用,那么试试这个: -
UIImage *myImage = [UIImage imageNamed:@"myImageFile.png"];
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:self action:@selector(menuObject:)];
self.navigationItem.leftBarButtonItem = menuButton;
如果它不起作用,那么试试这个: -
#define setTurqoiseColor [UIColor colorWithRed:68.0f/255.0f green:181.0f/255.0f blue:223.0f/255.0f alpha:1.0]
UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithImage:buttonImage style:UIBarButtonItemStyleBordered target:self action:@selector(toggleMenu)];
menuButton.tintColor = setTurqoiseColor;
答案 3 :(得分:1)
要设置条形项全局的色调颜色,请在App Delegate中添加以下代码行
UIBarButtonItem *barButtonAppearance = [UIBarButtonItem appearance];
[barButtonAppearance setTintColor:[UIColor redColor]]; // set to your color
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];
答案 4 :(得分:1)