【发布时间】:2017-06-16 12:01:17
【问题描述】:
我需要根据地区更改应用图标,可以吗?
【问题讨论】:
标签: ios uiapplication
我需要根据地区更改应用图标,可以吗?
【问题讨论】:
标签: ios uiapplication
是的,从 iOS 10.3 开始可以做到这一点。
首先,您需要在 Info.plist 文件中定义所有替代图标,您无法动态获取它们。
在下面的示例中,我们定义了 2 个替代图标:“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
}
}
结果:
【讨论】:
10.3(测试版)
中提供此功能讨论 使用此方法将应用程序的图标更改为其主图标或其中一个备用图标。只有在 supportsAlternateIcons 属性的值为 true 时才能更改图标。
您必须使用应用的 Info.plist 文件的 CFBundleIcons 键声明应用的主图标和备用图标。有关如何为您的应用配置备用图标的信息,请参阅信息属性列表键参考中对 CFBundleIcons 键的说明。
看看:
【讨论】: