如何在应用中添加图标更换功能

OneSwift - iOS Tips Based On Swift

接之前关于主题的分享,主题满足了用户界面自定义的需求。但是,当应用图标一直为默认的样子时,这一切显得并不那么完美。比如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实现后的效果吧:

[图片上传失败...(image-b6b558-1519262714908)]

GitHub:OneSwift - iOS Tips Based On Swift

微博:xDEHANG

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,628评论 4 61
  • 今天腊八了,常说的:腊七腊八出门冻傻。一点儿都不假啊,太冷了,早上出门把自己裹的就露两只眼睛,就跟太空人一样,还是...
    冰雪嫣然阅读 253评论 1 0
  • 大师点了一根烟,深吸一口。 “亮子啊,你这公众号有问题!” “还请您指导一二!”我拿出本子和笔。 大师是朋友中一位...
    亮子老湿阅读 852评论 1 1
  • 本人申请入驻今日头条自媒体平台,账号名:半宛清愁。遵守一切制度。特此证明!希望帅哥美女小编审核通过,先谢了。
    爱车的事阅读 350评论 0 0
  • 解不开的心结, 随着时光的流逝, 悄然隐藏。 在灵魂的最深处, 敏感如发丝扫过最柔软的皮肤。
    琉璃月色如水阅读 591评论 1 1

友情链接更多精彩内容