我想把UIBarButtonItem加上UIImage再加上UIToolbar.图像一直被着色,我无法让它显示为原始的彩色图像-我想做的是显示一个图像,逐字,在一个UIBarButtonItem!我按照iOS 7过渡指南中的说明将图像渲染模式设置为UIImageRenderingModeAlwaysOriginal.

UIImage *image = [UIImage imageNamed:@"myImage.png"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIBarButtonItem *ratingImage = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStyleBordered target:nil action:nil];

[toolbar setItems:[NSArray arrayWithObjects:ratingImage, nil] animated:YES];

需要注意的一点是,当我的应用程序加载时,我为主窗口设置了tintColor...也许这对我的问题不重要,但我想我应该提一下.

推荐答案

我花了一个晚上试图弄明白这一点.你非常接近解决方案.

而不是做:

 UIImage *image = [UIImage imageNamed:@"myImage.png"];
 image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

这样做:

 UIImage *image = [[UIImage imageNamed:@"myImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

而且很有效!

在我的例子中,我将导航栏拖到了IB中的viewcontroller,并添加了BarButtonItem.但不要在IB中为物品提供图像.制作一个插座,并通过以下操作为其分配UIImage(如我们上面创建的):

[myCustomBarButtonItem setImage:image];

希望这对你有用.

Objective-c相关问答推荐

iOS:警告try 呈现其视图不在窗口层次 struct 中的 ViewController

Objective C 布尔数组

UIApplication.sharedApplication.delegate.window 和 UIApplication.sharedApplication.keyWindow 有什么区别?

是否可以在 nsstring 中包含引号?

如何调整 UIModalPresentationFormSheet 的大小?

Objective-C 的 Eclipse 插件?

MKMapView MKPointAnnotation 点击​​事件

如何删除 xcode 5 中的旧配置文件?

Grand Central Dispatch (GCD) 与 performSelector - 需要更好的解释

反转 NSString 文本

获取包含在 NSString 中的文件的扩展名

显示启动画面的时间超过默认秒数

带有 NSBlockOperation 和队列的 NSURLSession

对 NSTimer 目标的弱引用以防止保留循环

writeToFile:atomically: atomically 是什么意思?

如何为 iPhone 6/7 自定义边到边图像指定尺寸?

从视图中删除所有子图层

UITableView 在半透明的导航栏下

使用 Objective-C 发布多部分/表单数据

无法从其 DataSource 获取单元格