SwiftUI 高阶布局与数据流实战
第1章 GeometryReader 深度解析
1.1_理解 GeometryReader 的工作原理 1.2_获取视图的尺寸和位置 1.3_处理不同坐标空间 (local, global, named) 1.4_GeometryReader 的性能陷阱与优化 1.5_创建响应式和自适应布局 1.6_实现滚动视差效果
第2章 PreferenceKey 实现逆向数据流
2.1_定义自定义 PreferenceKey 2.2_使用 .preference(key-value-) 设置值 2.3_使用 .onPreferenceChange() 监听变化 2.4_使用 .background() 读取 Preference 值 2.5_通过 PreferenceKey 同步子视图尺寸 2.6_实现动态导航栏标题效果
第3章 自定义布局协议 (Layout Protocol)
3.1_理解 Layout 协议的核心方法 3.2_实现 sizeThatFits 方法计算容器大小 3.3_实现 placeSubviews 方法放置子视图 3.4_创建自定义流式布局 (Flow Layout) 3.5_创建自定义径向布局 (Radial Layout) 3.6_管理布局缓存以提高性能 3.7_为自定义布局添加动画
第4章 视图对齐与锚点 (Anchor)
4.1_理解 Anchor-Value- 的概念 4.2_使用 .anchorPreference 传递锚点 4.3_使用 GeometryReader 读取锚点信息 4.4_在不同视图间创建精确对齐线 4.5_实现复杂的视图连接效果
第5章 深入理解 @StateObject 与 @ObservedObject
5.1_辨析 @StateObject 和 @ObservedObject 的生命周期 5.2_选择正确包装器的场景分析 5.3_避免 @ObservedObject 的常见陷阱 5.4_在依赖注入中使用 @StateObject
第6章 环境值与环境对象 (Environment)
6.1_使用 @EnvironmentObject 注入依赖 6.2_自定义 EnvironmentKey 与 EnvironmentValues 6.3_在整个应用中共享数据模型 6.4_读取系统环境值 (如颜色方案、尺寸类别) 6.5_环境值与视图预览的配合使用
第7章 Observation 框架 (iOS 17+)
7.1_使用 @Observable 宏简化模型 7.2_理解 Observation 框架的自动跟踪机制 7.3_从 ObservableObject 迁移到 @Observable 7.4_@Bindable 的使用与双向绑定 7.5_Observation 框架的性能优势
第8章 管理持久化数据
8.1_使用 @AppStorage 进行轻量数据持久化 8.2_集成 Core Data 与 SwiftUI 8.3_使用 SwiftData 进行现代数据持久化 (iOS 17+) 8.4_@Query 宏的使用与配置 8.5_在 SwiftUI 视图中处理 SwiftData 的增删改查
第9章 自定义视图与修改器 (ViewModifier)
9.1_创建可复用的自定义视图组件 9.2_封装行为与样式到自定义 ViewModifier 9.3_通过扩展 View 提供简洁的 API 9.4_理解 .modifier() 和直接调用的区别 9.5_实现带参数的视图修改器
第10章 SwiftUI 性能分析与调试
10.1_使用 Instruments 分析 SwiftUI 性能 10.2_识别并解决视图重复计算问题 10.3_理解 'Identity' 对性能和动画的影响 10.4_使用 EquatableView 减少不必要的刷新 10.5_懒加载视图 (LazyVStack, LazyHStack) 的优化技巧
第11章 高级动画与转场
11.1_使用 matchedGeometryEffect 实现英雄动画 11.2_创建自定义 Animatable 协议动画 11.3_利用 AnimatablePair 为多值添加动画 11.4_实现自定义视图转场 (AnyTransition) 11.5_组合与异步化转场效果 11.6_使用 PhaseAnimator 创建多阶段动画 (iOS 17+) 11.7_使用 KeyframeAnimator 创建关键帧动画 (iOS 17+)
第12章 在 SwiftUI 中使用 UIKit/AppKit 组件
12.1_实现 UIViewRepresentable 协议 12.2_实现 UIViewControllerRepresentable 协议 12.3_使用 Coordinator 处理代理和回调 12.4_管理 Representable 视图的生命周期 12.5_在 SwiftUI 中嵌入 WKWebView
第13章 在 UIKit/AppKit 中嵌入 SwiftUI 视图
13.1_使用 UIHostingController 嵌入 SwiftUI 视图 13.2_在 UITableViewCell 中使用 SwiftUI 13.3_管理 SwiftUI 视图的尺寸和布局 13.4_实现 UIKit 与 SwiftUI 之间的数据通信