# 策展 · X (Twitter) 🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：Dom (@dominikmartn) · 平台：X (Twitter) · 日期：2026-04-09

> 原始來源：https://x.com/dominikmartn/status/2042229283234472417

## 中文摘要

針對 SwiftUI 漸進式模糊標題實作困難，開發者推出開源解決方案。

在 SwiftUI 中實作類似 Apple Music 或 App Store 的「漸進式模糊標題 (Progressive Blur Header)」異常困難，因為缺乏原生 API 支援，且 AI 程式撰寫助手往往無法正確處理此模式。開發者 Dominik Martin 因此推出開源專案「ProgressiveBlurHeader」，提供一套能直接套用的解決方案，解決了內容被裁切或模糊效果不佳的常見痛點。

**核心痛點與 AI 侷限**
開發者指出，在 SwiftUI 建立漸進式模糊標題之所以困難，是因為缺乏變數半徑模糊（variable-radius blur）的原生 API。大多數嘗試方案常導致以下問題：
- 內容邊緣被裁切（Hard edges）。
- 模糊效果過於平坦（Uniform blur）。
- 使用複雜的 `UIViewRepresentable` 包裝器，導致 SwiftUI 的佈局系統崩潰。
此外，作者特別批評 AI 程式撰寫助手在處理此類模式時表現不佳，通常需要多次迭代才能產出正確程式碼，而該套件則能以單行程式碼解決此問題。

**技術架構與運作機制**
該套件採用三層 `ZStack` 架構，確保內容在標題下方自由捲動且不被裁切：
- 底層：`ScrollView`，負責承載內容。
- 中層：`VariableBlurView` 結合漸層，負責處理漸進式模糊與色調覆蓋。
- 頂層：使用者自訂的標題，懸浮於模糊層之上。
此方案透過 nikstar 開發的 `VariableBlur` 引擎（一個經過 App Store 驗證的私有 API 封裝）來實現模糊效果。

**使用限制與注意事項**
為了確保效果正確，開發者強調了幾項關鍵規則：
- 標題絕對不能有不透明背景（例如 `.background(Color.xxx)`），否則會遮蔽模糊效果。
- 嚴禁在層級中使用 `.clipped()`，以確保內容始終可見。
- 標題高度透過 `GeometryReader` 與 `PreferenceKey` 自動測量，支援動態調整。

**對比原生 API 的優勢**
針對 iOS 26 引入的 `.safeAreaBar(edge: .top)` 功能，作者認為雖然它能快速建立帶有模糊效果的固定列，但缺乏對模糊半徑、色調強度及淡出長度的控制。對於需要精確匹配特定設計需求的開發者而言，使用此類自訂方案仍是目前最佳選擇。

## 標籤

SwiftUI, 開源專案, iOS
