如何在Swift中为Assets Color设置alpha透明度
问题原因
UIKit 提供的UIColor(named:)构造器本身没有支持传入alpha参数的重载,所以你传入alpha参数时Xcode会抛出参数多余的报错。
解决方法
方法1:调用实例方法调整透明度(最常用)
直接在读取到的资产颜色实例后调用withAlphaComponent(_:)方法即可修改透明度,示例代码如下:
let customColor = UIColor(named: "something")?.withAlphaComponent(0.4)
如果你能保证对应名称的资产颜色一定存在,可以直接强制解包,也可以追加默认值避免可选值问题:
// 强制解包写法(确认资产存在时使用) let customColor = UIColor(named: "something")!.withAlphaComponent(0.4) // 带默认值的写法 let customColor = UIColor(named: "something")?.withAlphaComponent(0.4) ?? .systemBlue
方法2:在资产库中预设半透明版本
如果某个半透明版本的颜色需要频繁使用,可以直接在Assets.xcassets中新增一个颜色资产,在颜色属性面板直接设置alpha值为你需要的数值,后续代码直接读取新的颜色名称即可,不需要每次动态调整透明度。
内容的提问来源于stack exchange,提问作者user17353495
相关产品推荐
相关产品推荐

