通过xcode5的xib进行设计时,导航栏按钮项目图像颜色不同

Bug*_*Bug 28 iphone xcode objective-c ios ios5

我正在使用xib创建导航栏按钮但是当我要将图像设置为条形按钮时,图像颜色与原始图像不同.

这是我的原始图像.

这是我的原始图像

并且在导航栏按钮项目上添加该图像后,它看起来像这样

Aafter在导航栏上添加该图像

Dan*_*thy 70

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

Objective-C的:

[button setImage:[[UIImage imageNamed:@"imageName.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

迅速:

someBarButtonItem.image = UIImage(named: "yourPictureName")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
Run Code Online (Sandbox Code Playgroud)

斯威夫特3:

someBarButtonItem.image = UIImage(named:"myImage")?.withRenderingMode(.alwaysOriginal)
Run Code Online (Sandbox Code Playgroud)


Ift*_*ari 12

这是示例工作代码

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;
Run Code Online (Sandbox Code Playgroud)


cod*_*cat 7

因为ios7故事板有问题我面临如下修复.将您的色调颜色设置为它的图像颜色

在此输入图像描述


小智 7

您可以以编程方式创建导航栏按钮而不是直接故事板,这不会影响原始图像颜色

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;
}
Run Code Online (Sandbox Code Playgroud)


bha*_*ari 6

您还需要设置色调颜色 - 这对我有用 - 您可以通过代码生成 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;
Run Code Online (Sandbox Code Playgroud)


Max*_*Max 6

希望我添加自己的答案还为时不晚,但在Assets.xcassets中,您可以单击图像并在属性检查器中,在Rendar下将其设置为原始图像

在此输入图像描述