【问题标题】:Is this possible to apply the alternative icon to the iOS application?这是否可以将替代图标应用于 iOS 应用程序?
【发布时间】:2017-06-16 12:01:17
【问题描述】:

我需要根据地区更改应用图标,可以吗?

【问题讨论】:

    标签: ios uiapplication


    【解决方案1】:

    是的,从 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
        }
    }
    

    结果:

    gif 来自a Medium article by Julien Quéré

    【讨论】:

    • 主键:在 .xcassets 文件夹之外添加您的备用应用程序图标图像。
    • 您可以更改的图像数量是否有限制? @KlimczakM
    • @Pavan,完全没有限制。唯一的限制是你的包里有什么。
    【解决方案2】:

    10.3(测试版)

    中提供此功能

    讨论 使用此方法将应用程序的图标更改为其主图标或其中一个备用图标。只有在 supportsAlternateIcons 属性的值为 true 时才能更改图标。

    您必须使用应用的 Info.plist 文件的 CFBundleIcons 键声明应用的主图标和备用图标。有关如何为您的应用配置备用图标的信息,请参阅信息属性列表键参考中对 CFBundleIcons 键的说明。

    看看:

    apple documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      相关资源
      最近更新 更多