Swift如何在應用中添加圖標更換功能的方法
接之前關于主題的分享,主題滿足了用戶界面自定義的需求。但是,當應用圖標一直為默認的樣子時,這一切顯得并不那么完美。比如OneDay的主題擁有10種配色,而默認的圖標僅僅只有綠白搭配。
iOS在10.3之后,增加了動態(tài)更換圖標的功能,允許在應用中提前內置圖標素材,在特定的用戶操作或應用定時函數進行替換應用圖標??赡艿膽脠鼍?,比如電商APP提前內置節(jié)日的圖標、時鐘類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實現后的效果吧:

GitHub:OneSwift - iOS Tips Based On Swift
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
iOS中Swift指觸即開集成Touch ID指紋識別功能的方法
隨著移動支付時代的到來,Touch ID 指紋驗證迅速被支付寶,微信錢包普及,相信各位朋友使用后也大呼方便。下面給大家分享iOS中Swift指觸即開集成Touch ID指紋識別功能的方法,一起看看吧2017-03-03
Swift下使用UICollectionView 實現長按拖拽功能
拖拽排序是新聞類的App可以說是必有的交互設計,如今日頭條,網易新聞等。這篇文章主要介紹了Swift下使用UICollectionView 長按拖拽功能,需要的朋友可以參考下2017-03-03
SwiftUI學習之state和Binding的區(qū)別淺析
這篇文章主要給大家介紹了關于SwiftUI學習之state和Binding區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03

