日前开发项目的时候有一个需求就是要切换手机App的Logo,起初非常纳闷,这个Logo还能切换吗?于是我便开始查阅资料,原来苹果从iOS10.3开始支持动态更换应用logo了。
效果图
第一步: 添加图片
把需要切换的logo图片添加到工程中,注意这里一定要放在根目录下,不要放在Assets中
第二步:编辑Info.plist文件
- 打开Info.plist添加
Icon files (ios 5)
属性 类型为Dictionary
- 添加
CFBundleAlternateIcons
属性 类型为Dictionary
- 在CFBundleAlternateIcons中添加想要替换的logo对象,我这里添加了
Icon1
和Icon2
两个logo,类型是`Dictionary。 - 向第三步里增加
CFBundleIconFiles
属性 类型为Array
- 向数组中添加元素,元素的名臣就是你Logo的名字
第三步里的
icon1、icon2
名字你可以任意起,但注意在后续修改Logo的代码中使用的就是这里的名字
第三步:代码实现
if UIApplication.shared.supportsAlternateIcons {
// 允许换图标 这里就是第二步中第三小步你自定的名字
var iconName = "Icon1"
UIApplication.shared.setAlternateIconName(iconName){ err in
if let error = err {
print(error)
} else {
print("成功了")
// 强制回到桌面
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
}
}
}
最后附上Demo,大家加油!!!