我有一个名为“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
对于斯威夫特 2:
theImageView.image = theImageView.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) theImageView.tintColor = UIColor.redColor()
同时,现代的 Objective-C 解决方案是:
theImageView.image = [theImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [theImageView setTintColor:[UIColor redColor]];
Watchkit 在 Apple Watch 应用程序的 WatchKit 中,您可以设置模板图像的色调颜色。
然后在 Swift 3 或 4 中设置色调颜色:
theImage.setTintColor(UIColor.red)
斯威夫特 2:
theImage.setTintColor(UIColor.redColor())
然后在 Objective-C 中设置色调颜色:
[self.theImage setTintColor:[UIColor redColor]];
如果您使用模板图像并且不应用色调颜色,则会应用 WatchKit 应用程序的全局色调。如果您没有设置全局色调,theImage则在用作模板图像时默认为浅蓝色。
theImage