Swift如何在應(yīng)用中添加圖標(biāo)更換功能的方法
接之前關(guān)于主題的分享,主題滿足了用戶界面自定義的需求。但是,當(dāng)應(yīng)用圖標(biāo)一直為默認(rèn)的樣子時(shí),這一切顯得并不那么完美。比如OneDay的主題擁有10種配色,而默認(rèn)的圖標(biāo)僅僅只有綠白搭配。
iOS在10.3之后,增加了動(dòng)態(tài)更換圖標(biāo)的功能,允許在應(yīng)用中提前內(nèi)置圖標(biāo)素材,在特定的用戶操作或應(yīng)用定時(shí)函數(shù)進(jìn)行替換應(yīng)用圖標(biāo)??赡艿膽?yīng)用場景,比如電商APP提前內(nèi)置節(jié)日的圖標(biāo)、時(shí)鐘類APP內(nèi)置時(shí)間圖標(biāo)。
實(shí)現(xiàn)應(yīng)用圖標(biāo)功能并不困難,通過三個(gè)步驟就可搞定:
1.設(shè)置圖標(biāo)信息
2.添加圖標(biāo)文件
3.調(diào)用更換函數(shù)
一、在info.plist中設(shè)置圖標(biāo)信息
首先將需要更換的圖標(biāo)按照下面的方式聲明,以便我們能夠正常調(diào)用文件和方法。注意,每個(gè)圖標(biāo)的圖標(biāo)名稱和對(duì)應(yīng)的文件名要一一對(duì)應(yīng)。
因?yàn)镺neDay有10中主題,每種主題有2個(gè)主要顏色,因此在我做的過程中實(shí)際上配置信息配置了20條。
二、在工程根目錄下添加圖標(biāo)文件
圖標(biāo)文件需要在根目錄下添加,這樣才能正常調(diào)用。注意圖標(biāo)的文件有2x和3x兩種尺寸,分別為 120x120和180x180。
當(dāng)然Assets中也要添加,為了方便在應(yīng)用中做預(yù)覽使用。
三、在使用的地方調(diào)用更換函數(shù)
最后一步其實(shí)很簡單,在需要的地方調(diào)用changeIcon(iconName:String?)即可,參數(shù)為我們添加好的應(yīng)用圖標(biāo)名稱。在changeIcon(iconName:String?)中需要判斷是否支持更換圖標(biāo),以免出錯(cuò),當(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實(shí)現(xiàn)后的效果吧:
GitHub:OneSwift - iOS Tips Based On Swift
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
欄 目:Swift
下一篇:Swift3遷移至Swift4可能遇到的問題小結(jié)
本文標(biāo)題:Swift如何在應(yīng)用中添加圖標(biāo)更換功能的方法
本文地址:http://mengdiqiu.com.cn/a1/Swift/11948.html
您可能感興趣的文章
- 01-11swift中defer幾個(gè)簡單的使用場景詳解
- 01-11Swift利用Decodable解析JSON的一個(gè)小問題詳解
- 01-11Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解
- 01-11Swift中初始化init的方法小結(jié)
- 01-11Swift中定義單例的方法實(shí)例
- 01-11Swift利用純代碼實(shí)現(xiàn)時(shí)鐘效果實(shí)例代碼
- 01-11Swift中排序算法的簡單取舍詳解
- 01-11Swift如何為設(shè)置中心添加常用功能
- 01-11Swift Json實(shí)例詳細(xì)解析
- 01-11Swift利用指紋識(shí)別或面部識(shí)別為應(yīng)用添加私密保護(hù)功能


閱讀排行
本欄相關(guān)
- 01-11Swift利用Decodable解析JSON的一個(gè)小問題
- 01-11swift中defer幾個(gè)簡單的使用場景詳解
- 01-11Swift中初始化init的方法小結(jié)
- 01-11Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解
- 01-11Swift利用純代碼實(shí)現(xiàn)時(shí)鐘效果實(shí)例代碼
- 01-11Swift中定義單例的方法實(shí)例
- 01-11Swift中排序算法的簡單取舍詳解
- 01-11Swift Json實(shí)例詳細(xì)解析
- 01-11Swift如何為設(shè)置中心添加常用功能
- 01-11Swift利用指紋識(shí)別或面部識(shí)別為應(yīng)用添
隨機(jī)閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子