当前位置: 首页 > 面试题库 >

如何在iOS和WatchKit中更改图像tintColor

钮兴安
2023-03-14
问题内容

我有一个名为“ theImageView”的UIImageView,其UIImage为单色
(透明背景),就像下面的左黑心一样。如何 按照iOS 7+导航栏图标中使用的着色方法
,在iOS 7或更高版本中以编程方式更改此图像的着色颜色


此方法也可以在Apple Watch应用程序的WatchKit中使用吗?


问题答案:

iOS对于iOS应用,在Swift 3、4或5中:

theImageView.image = theImageView.image?.withRenderingMode(.alwaysTemplate)
theImageView.tintColor = UIColor.red

For Swift 2:

theImageView.image = theImageView.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
theImageView.tintColor = UIColor.redColor()

Meanwhile, the modern Objective-C solution is:

theImageView.image = [theImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[theImageView setTintColor:[UIColor redColor]];

Watchkit
在Apple Watch应用程序的WatchKit中,您可以设置模板图像的色调颜色。

您必须将图像添加到WatchKitApp的资产目录中,并在AttributesInspector中将图像集设置为呈现为模板图像。与iPhone应用程序不同,当前无法在WatchKit Extension中的代码中设置模板渲染。
设置要在应用程序的界面生成器中的WKInterfaceImage中使用的图像在WKInterfaceController中为名为“ theImage”的WKInterfaceImage创建一个IBOutlet…然后在Swift 3或4中设置色调颜色:

theImage.setTintColor(UIColor.red)

Swift 2:

theImage.setTintColor(UIColor.redColor())

To then set the tint color in Objective-C:

[self.theImage setTintColor:[UIColor redColor]];

如果您使用模板图像且未应用色调颜色,则将应用WatchKit应用程序的“全局色调”。如果您尚未设置全局色调,theImage则在用作模板图像时默认情况下将淡蓝色。



 类似资料:
  • 我有一个名为“TheImageView”的UIImageView,UIImage是单色的(透明背景),就像下面左边的黑心一样。在iOS7或更高版本中,如何按照iOS7+导航栏图标中使用的色调方法,以编程方式更改此图像的色调颜色? 在Apple Watch应用程序的WatchKit中,这种方法也能起作用吗?

  • 问题内容: 我正在尝试使用Swift更改UIButton的图像…我该怎么办 这是OBJ-C代码。但是我不知道Swift: 问题答案: 从您的Obc-C代码中,我认为您想为按钮设置图片,因此请尝试以下方式: 简而言之: 对于Swift 3:

  • 本文向大家介绍iOS 更改图像的颜色,包括了iOS 更改图像的颜色的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我正在使用javaFX。我做了一个按钮并为此设置了一个图像。代码是: 但是我想当我点击按钮时,图像会变成另一张图片。我该怎么做呢?

  • 我从服务器接收图像,然后根据用户选择的颜色,图像颜色将发生变化。 我尝试了以下方法: 我得到了与我的目标相反的结果(UIImage外部的白色是用所选颜色着色的)。 出了什么问题? 在这个问题上我也需要这样做,提供的解决方案不能解决我的问题。如何更改iOS和WatchKit中的图像颜色

  • 我看了其他答案,试着: 以及: 在类中,我把图像文件放在资源文件夹中,也放在与我的文件和我项目的根文件夹中,甚至在开始时包含了/符号URL字符串,但没有工作。我想知道最近有没有人尝试过并成功了?