导航栏按钮项目图像颜色是不同的,当通过xcode设计xcode5

问题描述:

我的问题是,我使用xib创建导航栏按钮,但是当我将图像设置为酒吧按钮时,图像颜色是不同的作为orignal图像。导航栏按钮项目图像颜色是不同的,当通过xcode设计xcode5

这是我的原始图像。

Here is my orignal image

并补充说,图像上的导航栏按钮项目比它看起来像这样

Aafter adding that image on navigation bar

+1

你检查该元素的色调颜色和alpha? –

+0

请添加一些代码! –

+0

@Vision我在添加xib时没有使用xpr,而是在添加xib时显示信号颜色时添加了bar按钮,但是在我的iPhone上运行时,其颜色与上图中显示的颜色不同。 –

首先,我同意@ Desdenova的评论。
这两幅图像看起来不一样,每条线都有硬直角边缘,而另一条圆角。
确保您使用的是正确的图像文件。
如果是这种情况,真棒,问题解决了,而不会偏离您的实现xib。如果没有,只需以编程方式执行(按@shankars代码)。
但还有一点要注意,我碰到的问题,自定义图像文件的设置按钮中,当图像被调整了...确保图像设置的按钮时使用UIImageRenderingModeAlwaysOriginal

的Objective-C :

[button setImage:[[UIImage imageNamed:@"imageName.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal]; 

夫特:

someBarButtonItem.image = UIImage(named: "yourPictureName")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal) 

夫特3:

someBarButtonItem.image = UIImage(named:"myImage")?.withRenderingMode(.alwaysOriginal) 
+0

非常感谢你们。我有名称菜单的图像重复,其次是菜单@ 2x。当我删除第二个它是为我工作。 –

+0

@Daniel McCarthy。完美答案...很好。 –

+0

哦!地狱是.alwaysOriginal是否有?只是使它原来已经 – fullMoon

因为ios7故事板有问题,我面对解决像下面经过。 设置您的色调颜色图像色彩它的工作原理

enter image description here

+0

谢谢我以前的尝试,但它不是我的解决方案我通过删除重复的图像解决我的问题 –

+0

这是最好的解决方案,因为它没有提到任何代码 –

可以通过编程方式创建的,而不是直接的情节串连图板导航栏按钮,这会不会影响原来的图像色彩

self.navigationItem.leftBarButtonItem=[self backButton]; 

- (UIBarButtonItem *)backButton 
{ 
    UIImage *image = [UIImage imageNamed:@"image.png"]; 
    CGRect buttonFrame = CGRectMake(0, 0, image.size.width, image.size.height); 

    UIButton *button = [[UIButton alloc] initWithFrame:buttonFrame]; 
    //[button addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside]; 
    [button setImage:image forState:UIControlStateNormal]; 

    UIBarButtonItem *item= [[UIBarButtonItem alloc] initWithCustomView:button]; 

    return item; 
} 

您需要设置色调颜色,以及 - 这为我工作 - 通过代码 您可以生成的UIBarButtonItem如下:

#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; 
+0

感谢您给予您的时间 –

这是样品的工作代码

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; 
+0

这是最简单的解决方案。谢谢! – fahrulazmi

希望我不会太迟添加自己的答案,但在Assets.xcassets中,您可以点击图片并在属性检查器中点击作为伦达它设置为原始图像

enter image description here