我必须想象这个问题已经被问过好几次了,但我的问题措辞一定不正确。
我有自己在 Photoshop 中制作的自定义图像,并将其设置为按钮的图像属性。这里正常显示:
背景是透明的,但它是 44x44,其中三个点是 88x88 像素的 .png 文件。所以如果我做这样的事情:
self.theButton.tintColor = [UIColor redColor];
图像仍然显示为白色。我不是一名设计师,所以我似乎缺少如何正确保存或设置文件以使它们尊重tintColor 属性。在 Photoshop 中,我通常使用“另存为网页”来保存这些。
Thanks
您正在寻找的是模板图像。
来自 UIKit 用户界面目录:
模板图像
在 iOS 7 中,您可以选择将应用程序中的任何图像视为
模板(或模板)图像。当您选择将图像视为
模板时,系统会忽略图像的颜色信息并创建
基于图像中 alpha 值的图像模板(图像的一部分)
alpha 值小于 1.0 的图像被视为完全
透明的)。然后可以使用tintColor对该模板重新着色
与用户界面的其余部分相匹配。
默认情况下,创建图像 (UIImage)
UIImageRenderingMode自动。如果你有
UIImageRenderingModeAutomatic 在您的图像上设置,它将被视为
模板或基于其上下文的原始内容。某些 UIKit
元素——包括导航栏、选项卡栏、工具栏、分段
控件 - 自动将其前景图像视为模板,
尽管它们的背景图像被视为原始图像。其他
元素(例如图像视图和 Web 视图)将其图像视为
原件。如果您希望您的图像始终被视为模板
无论上下文如何,设置 UIImageRenderingModeAlwaysTemplate;如果你
希望您的图像始终被视为原始图像,请设置
UIImageRenderingModeAlwaysOriginal。
要指定图像的渲染模式,首先创建一个标准图像,然后对该图像调用图像 WithRenderingMode: 方法。
UIImage *myImage = [UIImage imageNamed:@"myImageFile.png"];我的图像=
[myImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)