Swift簡(jiǎn)單快速的動(dòng)態(tài)更換app圖標(biāo)AppIcon方法示例
關(guān)鍵方法
- 獲取到當(dāng)前AppIcon的名稱
// 獲取到當(dāng)前AppIcon的名稱 let iconName = UIApplication.shared.alternateIconName
- 是否支持切換APPIcon圖
// 是否支持切換APPIcon圖
if UIApplication.shared.supportsAlternateIcons {
}
- 切換APPIcon圖方法
// 切換APPIcon圖方法 參數(shù)填寫是AppIcon的名稱(Assets 中的圖片名稱)
UIApplication.shared.setAlternateIconName("AppIcon 1") { err in
if err == nil {
//成功了,跳轉(zhuǎn)到成功報(bào)告頁
}
}
具體代碼及UI
頁面UI例圖

class MCAppIconVC: UIViewController {
var selectInt = 1
override func viewDidLoad() {
super.viewDidLoad()
// 獲取到當(dāng)前AppIcon的名稱
let iconName = UIApplication.shared.alternateIconName
if let tagStr = iconName?.replacingOccurrences(of: "AppIcon ", with: "") {// 因?yàn)槲以O(shè)置的APPIcon名稱是"AppIcon 1", "AppIcon 2"等 這樣可以獲取后面的數(shù)字 布局UI
let tag = Int(tagStr) ?? 1
for i in 11...14 {
if let imageView = self.view.viewWithTag(i) as? UIImageView {// 所有按鈕設(shè)置未未選中
imageView.image = UIImage(named: "btn_normal_icon")
}
}
if let imageView = self.view.viewWithTag(10+tag) as? UIImageView {// 設(shè)置選中的UI
imageView.image = UIImage(named: "btn_npresses_icon")
}
selectInt = tag // 記錄當(dāng)前選中的是哪個(gè)
}
// 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) { //點(diǎn)擊下面的按鈕
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 {
//成功了,跳轉(zhuǎn)到成功報(bào)告頁
}
}
}else if UIApplication.shared.alternateIconName == nil, selectInt != 1 {
UIApplication.shared.setAlternateIconName("AppIcon \(selectInt)") { err in
if let err = err {
}else {
//成功了,跳轉(zhuǎn)到成功報(bào)告頁
}
}
}
}
}
}Assets 圖片設(shè)置 APPIcon名稱與上面的要一致
AppIcon 文件配置

以上就是Swift簡(jiǎn)單快速的動(dòng)態(tài)更換app圖標(biāo)AppIcon方法示例的詳細(xì)內(nèi)容,更多關(guān)于Swift 動(dòng)態(tài)更換app圖標(biāo)-AppIcon的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
swift 3.0 正則表達(dá)式查找/替換字符的實(shí)現(xiàn)代碼
正則表達(dá)式使用單個(gè)字符串來描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。本文重點(diǎn)給大家介紹swift 3.0 正則表達(dá)式查找/替換字符的實(shí)現(xiàn)代碼,需要的朋友參考下吧2017-08-08
Swift使用SnapKit模仿Kingfisher第三方擴(kuò)展優(yōu)化
這篇文章主要為大家介紹了Swift?SnapKit模仿Kingfisher第三方擴(kuò)展優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
純swift實(shí)現(xiàn)ipad版簡(jiǎn)單美團(tuán)界面功能
這篇文章主要為大家詳細(xì)介紹了純swift實(shí)現(xiàn)ipad版簡(jiǎn)單美團(tuán)界面功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Swift操作Quartz 2D進(jìn)行簡(jiǎn)單的繪圖與坐標(biāo)變換的教程
這篇文章主要介紹了Swift操作Quartz 2D進(jìn)行簡(jiǎn)單的繪圖與坐標(biāo)變換的教程,Quartz 2D是Core Graphics框架中的一個(gè)重要組件,經(jīng)常被Mac OS或和iOS開發(fā)者用來繪圖,需要的朋友可以參考下2016-04-04
swift5.3 UIColor使用十六進(jìn)制顏色的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于swift5.3 UIColor使用十六進(jìn)制顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Swift實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Swift實(shí)現(xiàn)簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Swift代碼實(shí)現(xiàn)冒泡排序算法的簡(jiǎn)單實(shí)例
冒牌排序可謂最基本的排序算法之一,穩(wěn)定而沒有優(yōu)化空間:D 下面就一起來看一下Swift代碼實(shí)現(xiàn)冒泡排序算法的簡(jiǎn)單實(shí)例:2016-06-06

