ios - 我可以以编程方式更改应用程序图标吗

标签 ios icons

我有两个内置的应用程序图标(免费和高级),是否可以在应用内购买成功完成后以编程方式将免费图标替换为高级图标?

最佳答案

针对这种情况有一个新的解决方案。

你可以使用

setAlternateIconName(_:completionHandler:)

iOS 10.3 随 xcode 8.3 一起发布。

10.3+

更新:

用法很简单,关键是找出plist的用法,注意你不能从xcassets加载资源(至少对我没用)。您需要将图标文件添加到项目中,并首选 180x180 的图像以获得质量。

您需要使用“图标文件(iOS 5)”,新的图标文件不起作用。

最后一件事,当您更改按钮上的图标时,单击它会弹出一个警告窗口,提示“您已更改“IcoTest”的图标。”

enter image description here

//ViewController.swift
@IBAction func ico1Click(_ sender: Any) {
    if UIApplication.shared.supportsAlternateIcons{
        UIApplication.shared.setAlternateIconName("Icon2", completionHandler: { (error) in
            print(error ?? "")
        })
    }else{
        print("NO NO")
    }
}

//Info.plist
<key>CFBundleIcons</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>Icon1</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternater1_180x180</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
        <key>Icon2</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternater2_180x180</string>
            </array>
        </dict>
    </dict>
</dict>

关于ios - 我可以以编程方式更改应用程序图标吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042275/

相关文章:

iphone - 是否可以将用户定义的 XCode build设置导出到环境变量

iOS 设置包 : How to validate input

javascript - UI5 ListItem更改DetailAndActive Icon

html - 如何使用图标作为 'background-image' 而不是 CSS 中的图像

css - 悬停时更改我的 SVG 图标的颜色

ios - 显示复选标记附件 View 移动表格内容

ios - UITableView 多选的选定复选标记未保持选中状态

ios - Xcode 7 自动布局是否损坏或难以使用

css - 在链接中创建一个 div(带有背景图片)

java - 在 JButton 上设置多个图标