在我的应用程序中,您可以选择“猫”或“狗”。根据此设置,应用程序中的所有图像均应不同:图标,背景等
我不想为所有图像创建单独的出口,并编写替换这些图像的代码。是否有一种机制可以让我根据内部变量有条件地使用一组图像或另一组图像。
最接近我需要的是iOS资产目录对Dark Appearance的支持-根据应用程序的外观,神奇地替换了我应用程序中的所有图像(包括通过界面构建器设置的图像,没有插座)。我想要相同的行为,但是基于我的内部设置。
创建两个Resource Bundles
,随便命名,它们将表示您所在州的数据收集。
*.xcassets
并分配图像enum AppState {
case dog
case cat
var bundle: Bundle {
switch self {
case .dog:
return Bundle(identifier: "com.dog")!
case .cat:
return Bundle(identifier: "com.cat")!
}
}
`
就是这样,瞧。当然,可以通过扩展图像来使您的生活更轻松。我为您提供了相同的图像名称,只有状态会发生变化。
extension UIImage { func getImage(named: String, state: AppState) { return UIImage(named: named, in: state.bundle!) } }
希望这就是您所需要的。