我需要根据地区更改应用图标,这可能吗?
答案 0 :(得分:35)
是的,这可能是因为 iOS 10.3 。
首先,您需要在Info.plist文件中定义所有替代图标,但您无法动态获取它们。
例如,在这里我们定义了两个替代图标:" de"和" fr":
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>de</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>ic_de</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>fr</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>ic_fr</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>ic_none</string>
</array>
</dict>
</dict>
然后,您可以根据自己喜欢的任何内容(游戏进度,天气状况,高级用户等)设置图标名称。要更改图标,请使用:
UIApplication.shared.setAlternateIconName("de") { (error) in
if let error = error {
print("err: \(error)")
// icon probably wasn't defined in plist file, handle the error
}
}
结果:
答案 1 :(得分:3)
10.3(测试版)
中提供此功能讨论 使用此方法可将应用的图标更改为其主要图标或其中一个备用图标。仅当supportsAlternateIcons属性的值为true时,才能更改图标。
您必须使用应用的Info.plist文件的CFBundleIcons密钥声明应用的主要和备用图标。有关如何为应用程序配置备用图标的信息,请参阅“信息属性列表键参考”中的CFBundleIcons键说明。
看看: