iOS26適配指南之Liquid Glass App Icon

介紹

  • Xcode 26 內(nèi)置了 Icon Composer 應(yīng)用,能夠創(chuàng)建.icon的設(shè)計(jì)文件,可以讓開(kāi)發(fā)者與設(shè)計(jì)師創(chuàng)建符合 “Liquid Glass” 風(fēng)格的全平臺(tái)(iOS、macOS、
    watchOS) App Icon。
  • 通過(guò) Icon Composer 將設(shè)計(jì)好的.icon文件導(dǎo)出,然后導(dǎo)入 iOS 項(xiàng)目,在項(xiàng)目設(shè)置中選擇該文件作為 App Icon,勾選Include all app icon assets,即可作為 App 的圖標(biāo)使用。

案例:動(dòng)態(tài)切換圖標(biāo)

  • 代碼。
import UIKit

enum AppIcon: String, CaseIterable {
    case defaultIcon
    case redIcon
    case greenIcon
    case blueIcon

    // icon文件的名稱(chēng)
    var iconName: String? {
        switch self {
        case .defaultIcon:
            return nil // 默認(rèn)圖標(biāo)
        case .redIcon:
            return "RedIcon" // 第1個(gè)icon
        case .greenIcon:
            return "GreenIcon" // 第2個(gè)icon
        case .blueIcon:
            return "BlueIcon" // 第3個(gè)icon
        }
    }
}

class ViewController: UIViewController {
    lazy var segmentedControl: UISegmentedControl = {
        let segmentedControl = UISegmentedControl(items: AppIcon.allCases.map { $0.rawValue })
        segmentedControl.selectedSegmentIndex = 0
        segmentedControl.translatesAutoresizingMaskIntoConstraints = false
        segmentedControl.addTarget(self, action: #selector(valueChanged), for: .valueChanged)
        return segmentedControl
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(segmentedControl)
        
        NSLayoutConstraint.activate([
            segmentedControl.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            segmentedControl.centerYAnchor.constraint(equalTo: view.centerYAnchor),
            segmentedControl.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: 20),
            segmentedControl.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -20)
        ])
    }

    @objc func valueChanged(_ sender: UISegmentedControl) {
        let selectedIndex = sender.selectedSegmentIndex
        let selectedIcon = AppIcon.allCases[selectedIndex]
        if UIApplication.shared.supportsAlternateIcons {
            UIApplication.shared.setAlternateIconName(selectedIcon.iconName) { error in
                if error != nil {
                    print(error?.localizedDescription)
                } else {
                    print("切換App圖標(biāo)成功")
                }
            }
        } else {
            print("不支持切換App圖標(biāo)")
        }
    }
}
  • 效果。
切換App圖標(biāo).gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Xcode 26 新特性 界面 項(xiàng)目 安裝包更小,其他組件與工具鏈只有在需要時(shí)才會(huì)下載。 設(shè)置界面重新設(shè)計(jì),菜單從...
    YungFan閱讀 1,491評(píng)論 4 4
  • 用到的組件 1、通過(guò)CocoaPods安裝 2、第三方類(lèi)庫(kù)安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,205評(píng)論 1 180
  • 介紹 在 iOS 26 中,UIButton 迎來(lái)了兩項(xiàng)非常實(shí)用的更新: Liquid Glass 風(fēng)格配置方法 ...
    YungFan閱讀 226評(píng)論 0 1
  • 最近,蘋(píng)果在官網(wǎng)給出了截至2015年2月份應(yīng)用被拒絕的十大理由,其中50%以上的應(yīng)用被拒絕都是因?yàn)檫@10個(gè)原因,其...
    Li_Cheng閱讀 1,889評(píng)論 1 5
  • 1.尺寸適配1.原因 iOS7中所有導(dǎo)航欄都為半透明,導(dǎo)航欄(height=44)和狀態(tài)欄(height=20)不...
    LZM輪回閱讀 6,391評(píng)論 1 4

友情鏈接更多精彩內(nèi)容