iOS 10.3 新增了更换 App 图标的功能,这个功能使用起来也不复杂,这篇文章就介绍一下 iOS 10.3 怎么更换 App 的图标
官方文档介绍
更换图标的需要用到下面几个新 API 方法:
|
|
其中最主要的是 setAlternateIconName
方法,这是这个方法的官方文档 除了使用这个方法之外还需要在 info.plist
文件里配置,这是配置说明 具体配置如图:
- Primary Icon:主要图标
- Icon files:图标数组
- Icon already includes gloss effects:图标已经包括光亮效果
- CFBundleAlternateIcons:包含有关应用程序所使用的所有图标的信息,此键允许您根据其预期的使用组合图标,并指定多个图标文件,并使用特定的键来修改这些图标的外观(当有多个备选图标时,在该数组下面增加多个Dictionary)
- NoImagePlac(Dictionary):图标字典,以图片名称作为字典名,
setalternateiconname
方法里面传入的图片名字就是和这个名字一致才能修改图标- CFBundleIconFiles:用于指定捆绑图标图像文件的文件名的顶级键
- UIPrerenderedIcon:图标文件是否已包含光亮效果,如果有了,苹果就不会给你加光亮效果(不设置或者为NO时会给你加上闪烁效果)
- NoImagePlac(Dictionary):图标字典,以图片名称作为字典名,
具体实现
上面的配置完成之后,就开始具体的实现了:
- App 默认的图标还是和之前一样放到
Assets.xcassets
里面 - 依照上面的
Info.plist
来配置CFBundleAlternateIcons
,用来切换图标的图片必须放在工程里面,放在Assets.xcassets
里面是没有效果的 - 使用代码进行切换
这是代码实现:
func changeIcon(iconName:String?) {
if UIApplication.shared.supportsAlternateIcons {//判断设备是否支持更换图标
UIApplication.shared.setAlternateIconName(iconName, completionHandler: { (error) in
if error != nil {
print("替换icon失败\(String(describing: error?.localizedDescription))")
}
})
}else {
print("设备不支持更换图标")
}
}
更换图标的时候会弹出提示框,提示框左边会显示更换的图标的样子,选择确定之后,回到桌面就可以看到图标被修改了
如果需要恢复原来的图标 setAlternateIconName
传 nil
就可以恢复了
这是 demo 代码地址
本人刚开始写博客,主要是为了给自己的知识点做一个笔记,方便自己以后查阅,如果能让别人有所启发也是荣幸之至!如有错误,欢迎指正!