图标info.png如何保持蓝色并且没有附带该图像的原始颜色?我使用以下代码:
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"info.png"]
style:UIBarButtonItemStylePlain
target:self
action:@selector(info:)];
答案 0 :(得分:51)
默认情况下,使用模板模式呈现UINavigationBar的条形按钮项目中的图像。您可以将其设置为原始。
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"info.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
style:UIBarButtonItemStylePlain
target:self
action:@selector(info:)];
答案 1 :(得分:16)
斯威夫特3:
let image : UIImage? = UIImage.init(named: "heart.png")!.withRenderingMode(.alwaysOriginal)
答案 2 :(得分:7)
你也可以从资产中获取它。转到Assets.xcassets>>选择正用作条形图项目图像的图像。点击右侧面板中的属性检查器。选择渲染为原始图像。它将是更早的默认值。您现在将看到彩色图像。
答案 3 :(得分:4)
let image = UIImage(named: "imageName")?.withRenderingMode(.alwaysOriginal)
navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(leftBarButtonPressed))
答案 4 :(得分:3)
答案 5 :(得分:2)
因为应用程序中barButtonItems的颜色与应用程序窗口中的tintColor属性相关。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window.tintColor = [UIColor redColor];
return YES;
}
答案 6 :(得分:2)
好的,明白了......我首先将图像设置为原始状态。
UIImage *image = [[UIImage imageNamed:@"info.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:image
style:UIBarButtonItemStylePlain
target:self
action:@selector(info:)];
答案 7 :(得分:0)
从故事板中更改条形按钮项目色调颜色。或者从故事板中的图像中着色。
颜色应该是您想要的颜色,如hex或rgb。