可以看到的很多應(yīng)用可以允許用戶自己設(shè)置可以選擇的 Icon 樣式纹笼,在很早之前的方法是在文件目錄里添加 Icon 進(jìn)行設(shè)置滔吠,新版本里可以直接在 Asset 里設(shè)置阻星,更加簡(jiǎn)單便捷盅惜,如果你需要設(shè)置應(yīng)用的可選 Icon 可以直接使用下面的方法糙捺。
1. iOS 應(yīng)用設(shè)置可選擇 Icon
1. 在 Asset 里添加 Icon
在 Xcode Asset 里伐割,右擊選擇添加 iOS -> New iOS App Icon候味,然后按照各個(gè)尺寸添加準(zhǔn)備的 Icon 圖片淹遵。
2. 設(shè)置可選 Icon
選擇要設(shè)置的 Targets 項(xiàng)目,在 Build Settings 里搜索 icon负溪,可以設(shè)置 Alternate App Icon Sets透揣,直接雙擊后面的內(nèi)容,在彈出的下拉里設(shè)置即可川抡,可以設(shè)置多個(gè)辐真。
下面的 Primary App Icon Set Name 即為默認(rèn)的 Icon,可以在這設(shè)置也可以在 Targets 里的 General 里設(shè)置崖堤。
3. 設(shè)置用戶選擇頁(yè)面
在你的應(yīng)用里設(shè)置用戶可以選擇更換自己應(yīng)用的 Icon 的頁(yè)面侍咱,主要包含的邏輯為判斷當(dāng)前的 Icon 是哪個(gè),以及設(shè)置選擇的 Icon 樣式密幔。
設(shè)置選擇的 Icon:
UIApplication.shared.setAlternateIconName("iOSIcon2")
對(duì)于恢復(fù)默認(rèn)的 Icon 可以設(shè)置名稱為 nil 即可楔脯。
UIApplication.shared.setAlternateIconName(nil)
如果需要判斷是否設(shè)置成功并給出對(duì)應(yīng)的提示,在上面的方法里會(huì)返回一個(gè) error胯甩,可以對(duì) error 進(jìn)行判斷即可昧廷。
UIApplication.shared.setAlternateIconName("iOSIcon2") { error in
if let error = error {
// 設(shè)置失敗
} else {
// 設(shè)置成功
}
}
判斷當(dāng)前應(yīng)用的 Icon:
UIApplication.shared.alternateIconName == "iOSIcon2"
同樣可以判斷是否為 nil 來(lái)判斷是否是默認(rèn) Icon。
UIApplication.shared.alternateIconName == nil
判斷應(yīng)用是否支持更換 Icon偎箫,暫時(shí)不知道什么設(shè)備不支持木柬,知道的小伙伴可以留言。
if UIApplication.shared.supportsAlternateIcons {
}
- Mac 設(shè)置可選擇 Icon
Mac 和 iOS 稍微不同淹办,采取直接設(shè)置圖片的形式眉枕,代碼如下:
NSApplication.shared.applicationIconImage = NSImage(named: "macIcon3")
macIcon3 為在 Asset 里放的 Icon 圖片。
注意??:Mac Icon 的尺寸怜森,如果按照 1024 去設(shè)置速挑,會(huì)發(fā)現(xiàn)比其他的應(yīng)用的 Icon 的尺寸大很多,經(jīng)過(guò)我們的對(duì)比副硅,按照 1024 的尺寸設(shè)置姥宝,中間實(shí)際的 Icon 尺寸在 840 左右和大部分的 Icon 尺寸一致,外圍的尺寸直接透明想许,其他尺寸的等比縮放即可伶授。
如果你知道更好的設(shè)置方式,可以留言流纹。
關(guān)于應(yīng)用:
更多內(nèi)容可以查看應(yīng)用 SwiftUI For Beginners糜烹,一個(gè)產(chǎn)品設(shè)計(jì)師從自學(xué)的 SwiftUI 開(kāi)發(fā)的各個(gè)過(guò)程給你講解 SwiftUI 內(nèi)容,Apple 應(yīng)用商店搜索 SwiftUI For Beginners 下載漱凝。
- 適合設(shè)計(jì)師人群疮蹦,互聯(lián)網(wǎng)從業(yè)者或者想自己做個(gè)應(yīng)用的人群;
- 不適合技術(shù)人群茸炒,應(yīng)用完全是從一個(gè) 0 基礎(chǔ)的角度去講解各個(gè)階段需要的知識(shí)愕乎,對(duì)于技術(shù)人群過(guò)于簡(jiǎn)單阵苇;
- 內(nèi)容講解?直接代碼效果預(yù)覽,學(xué)習(xí)過(guò)程更加直觀感论;
- iPhone绅项, iPad 和 Mac 全平臺(tái)支持,Apple Watch 和 TV 應(yīng)用即將上線比肄。