Swift如何在應(yīng)用中添加圖標(biāo)更換功能的方法
接之前關(guān)于主題的分享,主題滿足了用戶界面自定義的需求。但是,當(dāng)應(yīng)用圖標(biāo)一直為默認(rèn)的樣子時,這一切顯得并不那么完美。比如OneDay的主題擁有10種配色,而默認(rèn)的圖標(biāo)僅僅只有綠白搭配。
iOS在10.3之后,增加了動態(tài)更換圖標(biāo)的功能,允許在應(yīng)用中提前內(nèi)置圖標(biāo)素材,在特定的用戶操作或應(yīng)用定時函數(shù)進(jìn)行替換應(yīng)用圖標(biāo)??赡艿膽?yīng)用場景,比如電商APP提前內(nèi)置節(jié)日的圖標(biāo)、時鐘類APP內(nèi)置時間圖標(biāo)。
實現(xiàn)應(yīng)用圖標(biāo)功能并不困難,通過三個步驟就可搞定:
1.設(shè)置圖標(biāo)信息
2.添加圖標(biāo)文件
3.調(diào)用更換函數(shù)
一、在info.plist中設(shè)置圖標(biāo)信息
首先將需要更換的圖標(biāo)按照下面的方式聲明,以便我們能夠正常調(diào)用文件和方法。注意,每個圖標(biāo)的圖標(biāo)名稱和對應(yīng)的文件名要一一對應(yīng)。

因為OneDay有10中主題,每種主題有2個主要顏色,因此在我做的過程中實際上配置信息配置了20條。
二、在工程根目錄下添加圖標(biāo)文件
圖標(biāo)文件需要在根目錄下添加,這樣才能正常調(diào)用。注意圖標(biāo)的文件有2x和3x兩種尺寸,分別為 120x120和180x180。

當(dāng)然Assets中也要添加,為了方便在應(yīng)用中做預(yù)覽使用。

三、在使用的地方調(diào)用更換函數(shù)
最后一步其實很簡單,在需要的地方調(diào)用changeIcon(iconName:String?)即可,參數(shù)為我們添加好的應(yīng)用圖標(biāo)名稱。在changeIcon(iconName:String?)中需要判斷是否支持更換圖標(biāo),以免出錯,當(dāng)然也可以根據(jù)判斷提前顯示或隱藏該功能。
func changeIcon(iconName:String?) {
if #available(iOS 10.3, *) {
if UIApplication.shared.supportsAlternateIcons {//判斷設(shè)備是否支持更換圖標(biāo)
print("支持更換圖標(biāo)!")
//開始更換
UIApplication.shared.setAlternateIconName(iconName, completionHandler: { (error) in
if error != nil {
print("替換icon失敗\(String(describing: error?.localizedDescription))")
}
})
}else {
print("設(shè)備不支持更換圖標(biāo)")
}
} else {
// Fallback on earlier versions
}
}
最后來看看OneDay實現(xiàn)后的效果吧:

GitHub:OneSwift - iOS Tips Based On Swift
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Swift實現(xiàn)監(jiān)聽鍵盤通知及一些處理詳解
這篇文章主要給大家介紹了關(guān)于Swift實現(xiàn)監(jiān)聽鍵盤通知及一些處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法
本篇文章主要介紹了swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
Objective-C中的block與Swift中的尾隨閉包使用教程
Block是OC中的閉包,他和swift中的閉包有什么區(qū)別呢?下面這篇文章就來給大家介紹關(guān)于Objective-C中的block與Swift中的尾隨閉包使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12
Swift自動調(diào)整視圖布局AutoLayout和AutoresizingMask功能詳解
這篇文章主要為大家介紹了Swift自動調(diào)整視圖布局AutoLayout和AutoresizingMask功能及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

