当通过xcode5的xibdevise时,导航栏button项目图像的颜色是不同的

我的问题是,我使用XIB创build导航栏button,但是当我要将图像设置为酒吧button,然后图像颜色是不同的作为orignal图像。

这是我的原始形象。

这是我的原始形象

在导航栏button项目上添加该图像之后,看起来像这样

在导航栏上添加该图像后

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

Objective-C的:

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

迅速:

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

Swift 3:

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

这是示例工作代码

 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; 

您可以编程创build导航栏button而不是直接的故事板,这不会影响原始图像的颜色

 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; } 

因为ios7故事板有问题,我面临如下修复。 设置你的色调颜色作为图像的颜色

在这里输入图像说明

你需要设置色调以及 – 为我工作 – 您可以通过代码生成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;