查看: 36|回覆: 0

[Swift] Swift简单快速的动态更换app图标AppIcon方法示例

[複製鏈接]

5

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-10-5
發表於 2023-6-12 11:30:54 | 顯示全部樓層 |閲讀模式

关键方法

  • 获取到当前AppIcon的名称
 // 获取到当前AppIcon的名称
let iconName = UIApplication.shared.alternateIconName 
  • 是否支持切换APPIcon图
 // 是否支持切换APPIcon图
if UIApplication.shared.supportsAlternateIcons {
}
  • 切换APPIcon图方法
 // 切换APPIcon图方法 参数填写是AppIcon的名称(Assets 中的图片名称)
        UIApplication.shared.setAlternateIconName("AppIcon 1") { err in
            if err == nil {
                //成功了,跳转到成功报告页
            }
        }

具体代码及UI

页面UI例图

class MCAppIconVC: UIViewController {
    var selectInt = 1
    override func viewDidLoad() {
        super.viewDidLoad()
        // 获取到当前AppIcon的名称
        let iconName = UIApplication.shared.alternateIconName 
        if let tagStr = iconName?.replacingOccurrences(of: "AppIcon ", with: "") {// 因为我设置的APPIcon名称是"AppIcon 1", "AppIcon 2"等 这样可以获取后面的数字 布局UI
            let tag = Int(tagStr) ?? 1
            for i in 11...14 {
                if let imageView = self.view.viewWithTag(i) as? UIImageView {// 所有按钮设置未未选中
                    imageView.image = UIImage(named: "btn_normal_icon")
                }
            }
            if let imageView = self.view.viewWithTag(10+tag) as? UIImageView {// 设置选中的UI
                imageView.image = UIImage(named: "btn_npresses_icon")
            }
            selectInt = tag // 记录当前选中的是哪个
        }
        // Do any additional setup after loading the view.
    }
   //    @IBAction func tapGesture(_ sender: UITapGestureRecognizer) {
//        let tag = sender.view?.tag ?? 1
//        for i in 11...14 {
//            if let imageView = self.view.viewWithTag(i) as? UIImageView {
//                imageView.image = UIImage(named: "btn_normal_icon")
//            }
//            if let view = self.view.viewWithTag(i-10) {
//                view.layer.cornerRadius = 16
//                view.layer.masksToBounds = true
//                view.layer.borderColor = UIColor.white.cgColor
//                view.layer.borderWidth = 2
//            }
//        }
//        if let imageView = self.view.viewWithTag(10+tag) as? UIImageView {
//            imageView.image = UIImage(named: "btn_npresses_icon")
//        }
//        if let view = self.view.viewWithTag(tag) {
//            view.layer.cornerRadius = 16
//            view.layer.masksToBounds = true
//            view.layer.borderColor = UIColor(named: "ThemeYellow")?.cgColor
//            view.layer.borderWidth = 2
//        }
//        selectInt = tag
//    }
    @IBAction func setupBtnAction(_ sender: UIButton) { //点击下面的按钮
        if UIApplication.shared.supportsAlternateIcons { //是否支持切换APPIcon图
            if let iconName = UIApplication.shared.alternateIconName, iconName != "AppIcon \(selectInt)" {
                UIApplication.shared.setAlternateIconName("AppIcon \(selectInt)") { err in
                    if let err = err {
                    }else {
                        //成功了,跳转到成功报告页
                    }
                }
            }else if UIApplication.shared.alternateIconName == nil, selectInt != 1 {
                UIApplication.shared.setAlternateIconName("AppIcon \(selectInt)") { err in
                    if let err = err {
                    }else {
                         //成功了,跳转到成功报告页
                    }
                }
            }
        }
    }
}

Assets 图片设置 APPIcon名称与上面的要一致

AppIcon 文件配置

以上就是Swift简单快速的动态更换app图标AppIcon方法示例的详细内容,更多关于Swift 动态更换app图标-AppIcon的资料请关注琼殿技术社区其它相关文章!

您可能感兴趣的文章:
  • Swift 并发修改Sendable 闭包实例详解
  • Swift之for循环的基础使用学习
  • Swift自动调整视图布局AutoLayout和AutoresizingMask功能详解
  • Swift 中 Opaque Types学习指南
  • Swift 中的 RegexBuilder学习指南
  • Swift中的高阶函数功能作用示例详解
  • Swift并发系统并行运行多个任务使用详解
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部