SuperAPI AI 工具集

progressive-blur-header-swiftui

通用与其它

查看项目

更新于 10-15 19:48

技能介绍

用途:为 SwiftUI 应用提供粘性头部,内容滚过时产生渐进模糊与自适应着色效果,风格贴近 Apple Music、照片和 App Store。组件采用三层 ZStack 结构:底层 ScrollView 内容自由滚动不裁切,中层 VariableBlurView 加渐变实现渐进模糊与自适应 tint,顶层为开发者自定义的头部视图,透明背景悬浮其上。

主要能力:StickyBlurHeader 接收 header 和 content 两个 ViewBuilder 闭包。可调参数包括 maxBlurRadius(默认 5,顶部最大模糊半径)、fadeExtension(默认 64,头部下方模糊延伸点数)、tintOpacityTop(默认 0.7,状态栏/Dynamic Island 后方着色)、tintOpacityMiddle(默认 0.5,头部垂直中心着色)。tint 颜色自动适配深浅模式。头部高度通过 GeometryReader 与 PreferenceKey 自动测量,支持动态高度变化。

使用方式:通过 Swift Package Manager 安装,Xcode 中选择 File → Add Package Dependencies 并粘贴 https://github.com/dominikmartn/ProgressiveBlurHeader,分支选 main;或在 Package.swift 中加入 .package(url: "https://github.com/dominikmartn/ProgressiveBlurHeader", branch: "main") 并在 target 依赖中加入 "ProgressiveBlurHeader"。要求 iOS 16+、Swift 5.9+。

限制与注意事项:头部视图不得添加不透明背景,否则会遮蔽模糊效果;内容层级不得使用 .clipped(),否则内容在头部下不可见;外层容器必须设置 .background(Color(.systemBackground)),否则自适应 tint 无法正确工作。不要将内容再包一层 ScrollView,组件自带滚动容器。不要给头部设置固定高度,让 GeometryReader 自动测量。iOS 26 起可用原生 .safeAreaBar(edge: .top) 替代;当需要自定义模糊半径、可调 tint 强度、头部下方延伸淡出或支持 iOS 16–25 时,仍应使用本组件。模糊引擎为 nikstar 的 VariableBlur,与 Apple 内部使用的同一私有 API,已通过 App Store 审核。