当前位置:  开发笔记 > IOS > 正文

Swift 3:设置为模板图像时的UIImage和更改的色调颜色不显示图像

如何解决《Swift3:设置为模板图像时的UIImage和更改的色调颜色不显示图像》经验,为你挑选了2个好方法。

在Swift 3中,当我尝试以编程方式更改从资源加载的图像的颜色时,就像这样:

let imageView = UIImageView()
let image = UIImage(named: "imageFromAssets")?.withRenderingMode(.alwaysTemplate)
imageView.contentMode = .scaleAspectFit
imageView.tintColor = GREEN_UICOLOR // Change to custom green color
imageView.image = image

图像显示为下方的方块:

模板图像与绿色色调不起作用

然而,有趣的是这并不总是发生.使用资产中的其他一些图像,它可以工作并将色调更改为绿色:

模板图像与绿色色调工作

为什么这里有不一致的行为?一般来说,如何将模板图像添加到资源,并能够以编程方式更改其颜色?我意识到当我不将图像更改为模板图像时它可以工作,但我不能这样做,因为我想改变图像的色调.



1> Jon Rose..:

对于模板图像,背景需要是透明的 - 而不是白色.



2> Fogmeister..:

模板图像通过使用图像的不透明度属性来工作.

如果您的图像具有透明背景,则透明背景将保持透明,并且图像的其余部分将更改为微小颜色.

如果您的图像没有透明背景.说它有白色背景.然后整个图像将更改为色调(就像您在示例中看到的那样).

要解决此问题,您需要为该图像提供透明背景.

值得注意的是,您不需要该代码.如果仅在模板模式下使用图像,则只需在资产目录中选择渲染模式.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有