当图像是 UITabBar 的选择时使用原始图像颜色的优雅方式

Posted

技术标签:

【中文标题】当图像是 UITabBar 的选择时使用原始图像颜色的优雅方式【英文标题】:Elegant way to use Original Image Color when Image is Selection for UITabBar 【发布时间】:2019-05-24 06:34:20 【问题描述】:

我希望在选择图像时在UITabBar 中使用图像的原始颜色,并在未选择图像时默认为灰色。我试图在storyboard 上或以优雅的格式执行此操作,而不是转到每个 viewDidLoad 并多次手动粘贴该行。任何想法都会很棒!

【问题讨论】:

您总是可以创建UIViewController 的子类,它是您所有视图控制器的父类,您可以在其中只编写一次此通用代码。就个人而言,我什至不会打扰标签栏。一旦您需要对其进行一些修改(通常是这种情况),事情就会变得丑陋和骇人听闻。如果您需要,堆栈视图可以保存您的按钮甚至自定义视图。 【参考方案1】:

您可以在该特定图像的资产中为渲染模式设置“原始图像”。

【讨论】:

这种方法的问题是,当图像应该'变灰'时,它仍然会显示原始颜色,这就是我没有采用这种方法的原因。【参考方案2】:

为图片资源中的单个标签栏项目添加两个不同的图片。一个用于选定选项卡,另一个用于普通选项卡。将两个图像资产的“渲染为”参数设置为“原始图像”。将普通图像(未选择选项卡时)设置为选项卡栏项的“图像”属性,并在选择选项卡栏项时为选定图像设置“选定图像”。

希望这会有所帮助。

【讨论】:

这将导致在整个代码中复制相同的图像。不过,我感谢您的努力。

以上是关于当图像是 UITabBar 的选择时使用原始图像颜色的优雅方式的主要内容,如果未能解决你的问题,请参考以下文章

更改未选择的标签栏项目图像的颜色而不使其成为原始图像

上传脚本,裁剪/剪切缩略图

UITabBar 自定义背景图像应用于一个视图控制器而不是 AppDelegate

CT图像是如何生成的?原始图像要使用啥软件查看?

选中时,UITabBar 项目具有不同的颜色

UITabBarItem 图像颜色在第一次被选中后变为蓝色