首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在按钮- ios中更改png的颜色

在按钮- ios中更改png的颜色
EN

Stack Overflow用户
提问于 2014-11-27 04:38:57
回答 11查看 103.1K关注 0票数 122

我创建了一组图标,这些图标是透明的白色PNG:

我想做的是能把它们涂成其他颜色。如蓝色、灰色等。

我注意到“点击/点击”它们会自动变成灰色。所以我想我可以用水龙头或者它的正常状态把灰色变成任何我喜欢的东西:

实现这一目标的最佳途径是什么?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2014-11-27 05:36:02

以下代码将为按钮的正常状态设置色调颜色:

Swift 4及更新版本:

代码语言:javascript
复制
let origImage = UIImage(named: "imageName")
let tintedImage = origImage?.withRenderingMode(.alwaysTemplate)
btn.setImage(tintedImage, for: .normal)
btn.tintColor = .red

当状态更改按钮时,您可以根据需要更改颜色。

旧版本

Swift 3:

代码语言:javascript
复制
let origImage = UIImage(named: "imageName")
let tintedImage = origImage?.withRenderingMode(.alwaysTemplate)
btn.setImage(tintedImage, forState: .normal)
btn.tintColor = .redColor

有关Swift 2:请参阅修订历史。

票数 265
EN

Stack Overflow用户

发布于 2020-08-03 04:26:49

我找到了下面最简单的方法,

打开资产目录并选择图像,然后转到属性检查器,并将Render As更改为Template Image,如下所示

然后在按钮操作方法中添加下面的代码

代码语言:javascript
复制
yourButton.tintColor = .gray
票数 30
EN

Stack Overflow用户

发布于 2019-10-21 12:05:38

Swift 4或5

代码语言:javascript
复制
extension UIButton{

    func setImageTintColor(_ color: UIColor) {
        let tintedImage = self.imageView?.image?.withRenderingMode(.alwaysTemplate)
        self.setImage(tintedImage, for: .normal)
        self.tintColor = color
    }

}

使用:

代码语言:javascript
复制
button.setImage(UIImage(named: "image_name"), for: .normal) // You can set image direct from Storyboard
button.setImageTintColor(UIColor.white)
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27163171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档