我有两个内置的应用程序图标(免费和高级),是否可以在应用内购买成功完成后以编程方式将免费图标替换为高级图标?
最佳答案
针对这种情况有一个新的解决方案。
你可以使用
setAlternateIconName(_:completionHandler:)
iOS 10.3 随 xcode 8.3 一起发布。
更新:
用法很简单,关键是找出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>
关于ios - 我可以以编程方式更改应用程序图标吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042275/