iOS更换APP图标

250 阅读1分钟

今天,在使用'破壳日'的时候,无意中发现APP中有更换icon这一个功能.如下图所示

\

1672235-1f88c25fe949747d.png

1.png

\

程序员的好奇心使我度娘了一番,找到了实现的方法,做下记录,以便自己后期查阅.实现步骤如下:
1.新建一个工程,并导入你所需要的icon的logo.(略)
2.配置plist文件配置,添加Icon files (iOS 5)类型为Dictionary

1672235-35e35e84d7f2cb88.png

2.png

3.打开点开Icon files (iOS 5),设置Primary Icon 里面的图片为AppIcon默认图片为1.png

1672235-ca038bca126e877f.png

3.png

4.在Icon files (iOS 5)里面创建一个CFBundleAlternateIcons,类型为Dictionary

1672235-e04e115009c9c325.png

4.png

5.打开CFBundleAlternateIcons,分别添加icon1,icon2,icon3,它们对应的本地图片名字是1,2,3。添加时数据类型对应一至.

1672235-9cbaf907eeddd9ed.png

5.png

6.配置完之后,对应VC里面的代码如下:

class ViewController: UIViewController {
    @IBAction func icon01Click(_ sender: UIButton) {
        changeIconImage(name: "icon1")
    }

    @IBAction func icon02Click(_ sender: UIButton) {
        changeIconImage(name: "icon2")
    }
    
    @IBAction func icon03Click(_ sender: UIButton) {
        changeIconImage(name: "icon3")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    fileprivate func changeIconImage(name : String) {
        if UIApplication.shared.supportsAlternateIcons { //来判断是否支持换应用图标
            //setAlertnateIconName方法有二个参数
            //第一个参数是要换图标的名字(此名字不是图片的原始名字),如果写nil,系统默认是最初图标名字
            //第二个参数是方法执行的回调
         UIApplication.shared.setAlternateIconName(name, completionHandler: { (error) in
                if (error != nil) {
                    print(error ?? "失败")
                } else {
                    print("成功")
                }
            })
        }
    }
}

运行代码,效果如下:\

1672235-f733ca489bdc29ed.gif

1.gif


Demo地址.