我可以有一个带有彩色图像的 UIBarButtonItem 吗?
我有一个图像,我想在 UIBarButtonItem 上显示,但由于某种原因它只显示它的轮廓,其余部分都是白色的。我怎样才能让它真正显示图像?
谢谢!
I have an image that I want to display on a UIBarButtonItem, but for some reason it only shows the outline of it and the rest is all white. How can I have it actually display the image?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
还有其他 iOS7+ 解决方案:
Swift 5:
从 UIImage.h 中提取:
There's other iOS7+ solution:
Swift 5:
Extract from UIImage.h:
更新:请参阅 MANIAK_dobrii 的答案,获取更简单的解决方案,可在 iOS 7+ 中使用。
以下是我如何将图像用于 UIBarButtonItem:
UPDATE: See MANIAK_dobrii's answer for an easier solution, available in iOS 7+.
Here is how I use an image for a UIBarButtonItem:
还有另一种根本不涉及编码的方法。
首先,将要放置在 Assets.xcassets 文档上的栏上的图像。
在资源浏览器中选择图像。
在右侧垂直工具栏上打开该图像的属性检查器。
在“渲染为”上选择“原始图像”。
尽管在故事板上按钮将继续使用色调颜色,但在模拟器上运行时将显示原始图像。
图像的默认渲染模式因 UI 控件而异。不过,如果您在属性检查器上设置此参数,则可以强制图像始终以特定的渲染模式表示。
如果您需要在不同的控制器上使用不同的渲染模式表示相同的图像,那么来自 MANIAK_dobrii 的响应更合适。
There is another way that does not involve coding at all.
First, place the images you want to put on the bar on the Assets.xcassets document.
Select the image on the assets browser.
Open the Attributes inspector for that image on the right vertical toolbar.
On "Render As" select "Original Image".
Even though on the storyboard the buttons will continue to be painted with the tint color, when running on the simulator the original image will be shown.
The default rendering mode for an image varies from one UI control to the other. If you set this parameter on the attributes inspector, though, you can force that an image will be always represented with a specific rendering mode.
If you need the same image to be represented with different rendering modes on different controllers, then the response from MANIAK_dobrii is more appropriate.
在 Swift 3 中:
In Swift 3:
没有。正如您可以在 人机界面指南
Nope. As you can read in the Human Interface Guidelines