WWDC25

2025 年 6 月 25 日

UIKit 的華麗轉身:iOS 26 帶來的 5 個最令人驚驚的技術變革

已複製到剪貼板


多年來,開發者社群中總有一個揮之不去的問題:「UIKit 是否會被 SwiftUI 完全取代?」然而,WWDC25 的現場給出了最強而有力的回應。UIKit 不僅仍然是 iOS、iPadOS 乃至 visionOS 的開發基石,更迎來了前所未有的現代化更新。作為一名見證了 UIKit 十多年演進的開發者,我看到的不再是維護,而是一次徹底的「重生」。

WWDC 2025:What’s new in UIKit
WWDC 2025:What’s new in UIKit

iOS 26 證明了 UIKit 正在積極吸收現代 Swift 的特性,並在提升開發者體驗(DX)的同時,模糊了移動端與桌面端介面的界線。以下是本次更新中,最令技術社群震撼的五大技術變革。

「液態玻璃」設計系統讓 UI 具備物理生命力

iOS 26 引入了名為「液態玻璃 Liquid Glass」的全新設計語言。這不僅是視覺上的美化,更是對系統底層材料與控制項的全面重構。

液態玻璃的核心在於其透明度、動態感與光學物理特性。它模擬了真實的鏡面高光(Specular Highlights)與折射(Refraction)效果。為了協助開發者適配這套系統,Apple 推出了如 background extension view 等新工具,讓側邊欄內容能優雅地延伸至玻璃材質下;而新的 scroll edge effect 則讓內容在滾動至玻璃邊緣時自然淡出,確保導覽列按鈕的易讀性。

更具 DX 價值的是,導覽過場動畫現在全面支援可中斷性(Interruptible transitions)。用戶無需等待動畫播放完畢即可中斷並進行下一個操作,這種極致的響應性消除了過去 UI 的「阻滯感」。

新的設計系統為系統材料與控制項帶來了充滿活力的外觀。其核心是全新的材質『液態玻璃』,它是半透明的、動態的,並因鏡面高光和折射等效果而顯得生機勃勃。

Swift Observation 深度整合:徹底告別手動 Invalidation

這可能是 iOS 26 中對簡化程式碼邏輯(Reducing Boilerplate)貢獻最大的一項改進。UIKit 現在將 Swift Observation 納入核心架構。

過去我們必須手動呼叫 setNeedsLayout() 或管理訂閱,現在 UIKit 會在 layoutSubviewsconfigurationUpdateHandler 等關鍵 Hook 中自動追蹤 Observable 物件。當 Model 屬性變更時,UIKit 會精準地僅使受影響的視圖失效(Invalidate)。

  • 全自動追蹤:只要在 layoutSubviews 中讀取了 Observable 屬性,系統便會自動建立依賴
  • Cell 配置優化:UICollectionView 的 Cell Provider 中,透過 configurationUpdateHandler 讀取 Model,當 Model 變更時,Cell 會自動觸發更新
  • 向後兼容:雖然這是 iOS 26 的標準行為,但你可以透過在 info.plist 中加入 UIObservationTrackingEnabled 鍵值,將此現代化行為回溯至 iOS 18

這項整合不僅減少了副作用(Side effects),更讓 View 與 Model 的同步變得如 SwiftUI 般直覺。

iPad 上的 macOS 等級選單列與響應鏈進化

為了將 iPadOS 的生產力推向極致,iOS 26 完整引入了 macOS 的選單列(Menu Bar)體驗。

開發者現在可以使用 MainMenuSystemConfiguration API 進行深度定義,例如透過宣告式語法決定是否啟用「列印」或「檢閱器」等系統命令。而最具架構巧思的是焦點式延遲選單元素 (Focus-based deferred menu element)。

這項技術利用了 Responder Chain(響應鏈)的特性。以瀏覽器為例,當用戶呼叫「歷史紀錄」選單時,系統會沿著響應鏈尋找目前的 BrowserViewController 來動態提供資料。這避免了在 App 啟動時就預先構建沉重選單系統的效能損耗,實現了真正的動態按需更新。

精確的更新週期:updateProperties 與 flushUpdates

UIKit 在底層渲染循環中插入了兩個關鍵節點,旨在解決「佈局回饋迴圈」並提升效能。

updateProperties

這是一個全新的方法,運行順序位於 Trait Collection 更新之後、layoutSubviews 之前。 這項設計的精妙之處在於它將「屬性賦值」與「幾何佈局」解耦。你可以在此處根據目前的 Trait 更新樣式、顏色或配置,而不會觸發重複的佈局計算 pass。這是一個更輕量、效能更高的屬性更新 Hook。

flushUpdates

為了追求動畫的完美同步,iOS 26 在 UIView 動畫選項中新增了 .flushUpdates。它會在動畫開始與結束時自動應用掛起的狀態變更。你不再需要手動呼叫 layoutIfNeeded() 來強迫視圖同步,有效避免了動畫閃爍或狀態不一致的低級錯誤。

Storyboard 選單的終結與 Scene 時代的強硬轉型

對於習慣老派開發流程的工程師來說,iOS 26 帶來了一個「硬核」的變革:正式廢棄 Storyboard 定義的選單。

Apple 明確表示,若 App 嘗試從 Storyboard 載入選單,將導致啟動失敗。此外,UIApplicationDelegate 的許多舊有回調已被標記為 Deprecated,系統強制要求全面採用 UIScene 生命週期。

最核心的變動在於:UIWindow 現在僅保留 init(windowScene:) 初始化方法。這標誌著 App 必須具備多視窗處理能力。這項轉變背後的意圖非常明顯——讓所有 UIKit App 都能無縫移植到 VisionOS 的沉浸式空間,或是在 iPad 上實現更複雜的多工作業。

展望現代 UIKit 的新紀元

除了上述五大變革,iOS 26 還帶來了支援 HDR 曝光值的 UIColor 以及 SF Symbols 7 的「繪製動畫 Draw animations」,這些細節共同構成了 UIKit 的現代化圖景。UIKit 不再是那個沉重的舊框架,它正變得比以往任何時候都更輕盈、更強大、且更具 Swift 特色。

我鼓勵所有開發者立即下載 iOS 26 SDK。這不僅是為了適配新的「液態玻璃」美學,更是為了利用 Swift Observation 和新的更新週期來精簡你的架構。

隨著 UIKit 與強大的選單系統及自動化追蹤深度結合,你認為下一個能打破 iPad 與 Mac 界線、在平板上實現桌面級體驗的專業 App 會是什麼?

分享文章

已複製到剪貼板

主題文章

查看 WWDC25

超級感謝

關於 XcodeProject

XcodeProject 創立於 2023,致力於協助開發者探索 Apple 的創新世界,學習在 iOS、iPadOS、macOS、tvOS、visionOS 與 watchOS 上開發 App,發現眾多技術與框架,讓開發者獲得更多能力。


Contacts

Ricky Chuang

XcodeProject

RickyChuang.xcodeproj@gmail.com

XcodeProject 聯絡

contact.xcodeproj@gmail.com

最新文章