歡迎加入QQ討論群258996829
贏了現(xiàn)在輸了未來 頭像
蘋果2袋
2
贏了現(xiàn)在輸了未來

Swift如何在應用中添加圖標更換功能

發(fā)布時間:2018-03-04 09:48  回復:0  查看:3051   最后回復:2018-03-04 09:48  

OneSwift - iOS Tips Based On Swift

接之前關于主題的分享,主題滿足了用戶界面自定義的需求。但是,當應用圖標一直為默認的樣子時,這一切顯得并不那么完美。比如OneDay的主題擁有10種配色,而默認的圖標僅僅只有綠白搭配。

iOS在10.3之后,增加了動態(tài)更換圖標的功能,允許在應用中提前內(nèi)置圖標素材,在特定的用戶操作或應用定時函數(shù)進行替換應用圖標??赡艿膽脠鼍埃热珉娚藺PP提前內(nèi)置節(jié)日的圖標、時鐘類APP內(nèi)置時間圖標。

實現(xiàn)應用圖標功能并不困難,通過三個步驟就可搞定:

1.設置圖標信息

2.添加圖標文件

3.調(diào)用更換函數(shù)

一、在info.plist中設置圖標信息

首先將需要更換的圖標按照下面的方式聲明,以便我們能夠正常調(diào)用文件和方法。注意,每個圖標的圖標名稱和對應的文件名要一一對應。


設置圖標信息


因為OneDay有10中主題,每種主題有2個主要顏色,因此在我做的過程中實際上配置信息配置了20條。

二、在工程根目錄下添加圖標文件

圖標文件需要在根目錄下添加,這樣才能正常調(diào)用。注意圖標的文件有2x和3x兩種尺寸,分別為 120x120和180x180。


圖標文件位置


當然Assets中也要添加,為了方便在應用中做預覽使用。


圖標文件列表


三、在使用的地方調(diào)用更換函數(shù)

最后一步其實很簡單,在需要的地方調(diào)用changeIcon(iconName:String?)即可,參數(shù)為我們添加好的應用圖標名稱。在changeIcon(iconName:String?)中需要判斷是否支持更換圖標,以免出錯,當然也可以根據(jù)判斷提前顯示或隱藏該功能。

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實現(xiàn)后的效果吧:


圖標更換演示

GitHub:OneSwift - iOS Tips Based On Swift

微博:xDEHANG


您還未登錄,請先登錄

熱門帖子

最新帖子

?