我想动态更改应用图标。我从服务器收到图像。如何将该图像用作替代应用程序图标。请确保答案清晰。 (但据我所知,替代app图标文件应该在我们的项目plist文件中。)
提前致谢。
答案 0 :(得分:4)
您无法在运行时使用从服务器下载的图像更改应用程序图标。来自documentation:
您必须使用应用
CFBundleIcons
文件的Info.plist
键声明应用的主要和备用图标。有关如何为应用配置备用图标的信息,请参阅Information Property List Key Reference中CFBundleIcons
键的说明。
要动态设置应用图标,您必须能够在Info.plist
中对其进行定义,但您的Info.plist
已包含在您的应用套装中,并且您的应用套装是只读的,因此,您没有对Info.plist
文件的运行时写入权限。因此,您无法将应用程序图标更改为在运行时动态下载的图像
答案 1 :(得分:1)
Apple推出了一项很酷的功能,以便开发人员能够以编程方式更改应用程序图标。
在Apple的API文档中,有三件事值得一看:
var supportsAlternateIcons: Bool { get }
var alternateIconName: String? { get }
func setAlternateIconName(String?, completionHandler: ((Error?) -> Void)? = nil)
现在我们只调用方法:
changeIcon(to: "icon-imageName")
参考:https://developer.apple.com/documentation/uikit/uiapplication/2806815-supportsalternateicons