我可以通过编程方式更改应用程序图标吗

2024-03-28

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


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

您可以使用

setAlternateIconName(_:completionHandler:)

iOS 10.3 随 xcode 8.3 一起发布。

10.3+ https://developer.apple.com/reference/uikit/uiapplication/2806818-setalternateiconname

Update:

用法非常简单,关键是找出 plist 用法并注意你不能从 xcassets 加载资源(至少对我不起作用)。您需要将图标文件添加到项目中,并且为了质量更喜欢 180x180 图像。

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

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

//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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以通过编程方式更改应用程序图标吗 的相关文章

随机推荐