我的 iOS 和 watchOS 应用程序之间有一个共享框架,其中包含带有一些命名颜色的资产目录。我想在我的 watchOS 应用程序中访问指定的颜色。在iOS中,我可以使用UIColor.init(named name: String, in bundle: Bundle, compatibleWith traitCollection: UITraitCollection)
告诉系统从传入的 Bundle 中访问名称。
watchOS 还声称自 watchOS 4 起就可以使用此初始化程序;但是,Xcode 自动完成功能找不到它,当我尝试使用它时出现构建错误,这有点奇怪,因为UITraitCollection
(这是该方法签名的一部分)无论如何都不会在 watchOS 中暴露给我们。
如何从共享框架中的资产目录访问资产?
我遇到了同样的问题,并将提交反馈/雷达,但同时能够使用 SwiftUIColor
对象,其中有init(_ name: String, bundle: Bundle? = nil)
作为 watchOS 上的桥梁,并使用UIColor(Color)
构造函数以获得等效的UIColor
实例。 IE:
UIColor(Color("myColor", bundle: myBundle))
在我的特定情况下,我使用的实际代码是通过 UIColor、Color 和 Bundle 上的扩展公开的,因此我可以输入对资产目录和捆绑包的访问权限,但这本质上是幕后的机制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)