Swift如何在应用中添加图标更换功能
点击上方“iOS开发”,选择“置顶公众号”
关键时刻,第一时间送达!
OneSwift - iOS Tips Based On Swift(https://bjdehang.github.io/OneSwift/)
当应用图标一直为默认的样子时,这一切显得并不那么完美。比如OneDay的主题拥有10种配色,而默认的图标仅仅只有绿白搭配。
iOS在10.3之后,增加了动态更换图标的功能,允许在应用中提前内置图标素材,在特定的用户操作或应用定时函数进行替换应用图标。可能的应用场景,比如电商APP提前内置节日的图标、时钟类APP内置时间图标。
实现应用图标功能并不困难,通过三个步骤就可搞定:
1.设置图标信息
2.添加图标文件
3.调用更换函数
一、在info.plist中设置图标信息
首先将需要更换的图标按照下面的方式声明,以便我们能够正常调用文件和方法。注意,每个图标的图标名称和对应的文件名要一一对应。
因为OneDay有10中主题,每种主题有2个主要颜色,因此在我做的过程中实际上配置信息配置了20条。
二、在工程根目录下添加图标文件
图标文件需要在根目录下添加,这样才能正常调用。注意图标的文件有2x和3x两种尺寸,分别为 120x120和180x180。
当然Assets中也要添加,为了方便在应用中做预览使用。
三、在使用的地方调用更换函数
最后一步其实很简单,在需要的地方调用changeIcon(iconName:String?)即可,参数为我们添加好的应用图标名称。在changeIcon(iconName:String?)中需要判断是否支持更换图标,以免出错,当然也可以根据判断提前显示或隐藏该功能。
func changeIcon(iconName:String?) {
if #available(iOS 10.3, *) {
if UIApplication.shared.supportsAlternateIcons {//判断设备是否支持更换图标
print("支持更换图标!")
//开始更换
UIApplication.shared.setAlternateIconName(iconName, completionHandler: { (error) in
if error != nil {
print("替换icon失败(String(describing: error?.localizedDescription))")
}
})
}else {
print("设备不支持更换图标")
}
} else {
// Fallback on earlier versions
}
}
最后来看看OneDay实现后的效果吧:
微博:xDEHANG
链接:https://juejin.im/post/5a89816a518825247868fb74
iOS开发整理发布,转载请联系作者授权
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 1 习近平为何来到这座太行山城 7904234
- 2 女子坐11小时飞机后心跳骤停去世 7808906
- 3 扛140斤硬币存银行遭拒 当事人发声 7713312
- 4 暑期文旅消费火热开启 7617162
- 5 国防部回应歼-10战机出口问题 7523454
- 6 4.9分外卖店用草酸洗虾多日不换水 7424187
- 7 自来水黄得像酱油 水务部门:没问题 7329724
- 8 向佐金发配蕾丝透视装亮相巴黎 7235068
- 9 沪指要站上3500点 这次真的不难 7140268
- 10 苏州法院发悬赏公告:赏金最高2600万 7048564