标签

SwiftUI

共 137 篇文章

202611 篇

  1. ArrangementView:谋而后定

    深入剖析 Xcode 27.1 beta 中随 iPhone Duo 引入的 SwiftUI ArrangementView。解析 split 与 overlay 模式下的主次语义倒错、状态硬切及集中信息源的缺失,带你理清其舒适区与设计边界:谋而后定。

  2. Liquid Glass:UIKit 适配踩坑实录

    Liquid Glass 推出两年后,UIKit 的适配仍然存在不少兼容性问题。本文结合真实项目,分享 UIBarButtonItem、UITabBarController、WKWebView、Stepper 等组件在 iOS 26/27 下的典型坑点、Bug、解决方案与适配经验。

  3. 两个 SwiftUI 动画 Bug 排查小记

    记录两个 SwiftUI 动画 Bug 的排查:iOS 27 下父视图意外重建中断显式动画,以及 List 中三元表达式引发的 Image 动画异常。含基于 Animatable 的隐式动画 completion 方案。

  4. 用自定义 Layout 化解 SwiftUI List 的行高与间距跳变

    深入剖析 SwiftUI List 行高与间距动画跳变的根本原因,并提供完整的原生解决方案。通过自定义 Layout 协议、状态机解耦与 CollapsibleSpacingVStack,在不依赖 UIKit 的前提下实现 List row 高度与 spacing 的平滑动画过渡。

202513 篇

  1. 在 SwiftUI 中,如何判断 Text 是否被截断?

    SwiftUI 中如何判断 Text 是否被截断?本文深入讲解如何利用 fixedSize 和 GeometryReader 获取完整文本所需尺寸,结合 PreferenceKey 和 ZStack 的 layoutPriority 实现智能布局选择,确保内容完整显示,解决复杂自适应布局问题。

  2. 远离 dismiss,拥抱状态驱动

    在 SwiftUI 中,过度依赖 dismiss 会带来性能和维护风险。推荐用 Binding、函数或自定义环境值来解耦关闭操作,实现更明确、可控的视图状态管理。这不仅提升了测试性和可维护性,也避免了 dismiss 带来的隐性副作用。

  3. 让 @State 实现懒加载

    @State 在 SwiftUI 中不支持懒加载,可能导致实例提前创建影响性能。本文介绍 @LazyState 方案,为 Observable 实例提供懒加载能力,优化 SwiftUI 视图的性能。

  4. 精确掌控 SwiftUI 滚动:自定义 Paging 实现

    SwiftUI scrollTargetBehavior 让滚动控制更精准,但默认 paging 在横屏模式下存在偏移问题。本文探讨其局限性,并通过自定义 ScrollTargetBehavior 实现完美的翻页逻辑,确保精准对齐。

202424 篇

  1. 如何在 SwiftUI 中平铺图片

    探索 SwiftUI 图片平铺的两种方法:`resizable` 和 `foregroundStyle`。深入了解 `ImagePaint` 及自定义 `Image` 的应用,解锁更多可能性。

  2. 写在 WWDC 2024 之前:回顾 2019 至 2023 年间 SwiftUI 的关键升级及其影响

    当人们久别重逢时,常会对朋友的变化感到惊讶;而那些日复一日陪伴在我们身边的人,他们的变化往往容易被我们忽视。在这篇文章中,我将梳理从首个版本起那些给我留下深刻印象的 SwiftUI 关键更新及其影响。这不仅是对 SwiftUI 从诞生到逐渐成熟过程的回顾,也是一次对它所蕴含活力的新的认识。

202318 篇

  1. 掌握 ViewThatFits

    深入剖析 SwiftUI 自适应布局容器 ViewThatFits,掌握其选择逻辑、理想尺寸概念及应用示例。含复刻版,助你全面理解。

  2. 掌握 TipKit:进阶

    深入 TipKit 框架,探索自定义提示视图、UIKit 集成及跨应用数据共享。揭秘 TipKit 的规则引擎本质,掌握 Tip 状态观察和复用技巧。

  3. 掌握 TipKit:基础

    探索苹果 TipKit 框架的基础用法,学习如何在 SwiftUI 应用中展示提示,包括内联和弹出窗口样式,以及如何定义规则、事件,控制 Tip 的显示时机和频率。

  4. 打造可适配多平台的 SwiftUI 应用

    本文分享了使用 SwiftUI 打造多平台应用的关键要点,包括兼容性处理和数据源管理。通过实际案例,探讨如何利用 SwiftUI 特性适配 iOS, iPadOS 和 macOS 平台。

  5. onAppear 的调用时机

    探索 SwiftUI onAppear 的调用时机:本文通过 SwiftUI 4 新 API,证明 onAppear 在布局后、渲染前执行。深入理解视图生命周期,解决常见问题。

  6. 用 SwiftUI 的方式进行布局

    本文详解 SwiftUI 布局,通过多种方案实现同一复杂 UI 需求,展示其强大灵活性。包含 Offset, AlignmentGuide, NameSpace 等多种方法,助你深入理解 SwiftUI 布局逻辑。

202230 篇

  1. 聊一聊可组装框架( TCA )

    探索 SwiftUI 应用开发利器 TCA (The Composable Architecture),深入了解其特性、优势、使用技巧及学习路径。掌握状态管理、组装、副作用和测试,构建更强大的应用。

  2. StateObject 与 ObservedObject

    深入解析 SwiftUI 中 StateObject 与 ObservedObject 的异同,揭秘其原理和适用场景。避免使用陷阱,优化数据管理,提升应用性能。

  3. 掌握 SwiftUI 的 task 修饰器

    探索 SwiftUI 的 task 修饰器,掌握 async/await 异步任务处理。了解其用法、生命周期,以及如何移植到旧版本。深入理解 task 与 onAppear/onChange 的区别。

  4. 避免 SwiftUI 视图的重复计算

    深入解析 SwiftUI 视图重复计算原因及优化策略,包括 DynamicProperty、构造参数、事件源等,提升应用性能。避免卡顿,打造流畅 SwiftUI 体验!

  5. SwiftUI 布局 —— 对齐

    深入解析 SwiftUI 对齐原理,结合 Layout 协议,详解对齐指南、显式值及 first/lastTextBaseline,助你掌握 VStack/HStack/ZStack 布局精髓。解锁 SwiftUI 布局难题。

  6. SwiftUI 的动画机制

    SwiftUI 动画机制详解:时序曲线、状态关联与可动画部件,掌握 Transaction、转场及性能优化技巧,打造流畅交互体验。

  7. 在 SwiftUI 下定制手势

    探索 SwiftUI 手势定制,详解预置手势、GestureState 及组合手势,并展示轻扫、计时按压等自定义手势实现。iOS 18 引入 UIGestureRecognizerRepresentable,解决手势冲突。

202115 篇

  1. SwiftUI 视图的生命周期研究

    深入剖析 SwiftUI 视图生命周期,理解视图、类型树、视图值树及 onAppear 等关键概念。避免对视图行为的假设,优化 SwiftUI 性能。

  2. 掌握 SwiftUI 的 Safe Area

    探索 SwiftUI 安全区域:获取 SafeAreaInsets、忽略安全区、自定义安全区。掌握 ignoresSafeArea、safeAreaInset,解决键盘遮挡,轻松构建完美界面。

  3. 了解 SwiftUI 的 onChange

    SwiftUI 的 onChange 修饰器允许在视图中观察值的变化并触发操作。本文深入探讨了 onChange 的用法、特点、注意事项及替代方案,助你高效使用 SwiftUI。

  4. SwiftUI TextField 进阶 —— 事件、焦点、键盘

    2025 版 SwiftUI TextField 进阶教程。详解 onSubmit 事件、FocusState 焦点管理、键盘类型设置及 scrollDismissesKeyboard 自动收起键盘技巧。包含 Swift 6 适配指南与自定义键盘辅助视图 (InputAccessoryView) 的完整实现。

  5. @AppStorage 研究

    探索 SwiftUI 中优雅高效使用 @AppStorage 的技巧,解决数据类型少、声明繁琐等痛点。无需第三方库,轻松管理 UserDefaults,实现安全便捷的数据持久化。

202026 篇

  1. 在 SwiftUI 下对 iPad 进行适配

    SwiftUI 适配 iPad 实战经验分享,包含设备类型判断、屏幕方向控制、NavigationView 适配及常见问题处理。了解如何在 SwiftUI 中高效适配 iPad,提升用户体验。

  2. HowTO —— SwiftUI2.0 原生的 Grid

    探索 SwiftUI 2.0 原生 Grid:LazyVGrid 和 LazyHGrid 用法详解,无需第三方库,轻松实现类似 UICollectionView 的网格布局。包含混合使用示例。

  3. HowTo —— Swift2.0 在视图中显示地图

    Swift 2.0 新增 Map,轻松在 SwiftUI 视图中添加地图元素。本文详解 Map 用法,包括设置区域、跟踪用户位置及添加标记点。了解如何在 iOS 应用中集成地图功能。

  4. @FocusedBinding 浅谈

    探索 SwiftUI 2.0 新特性 @FocusedBinding,实现视图间数据共享与绑定。无需 Single of truth,轻松解决数据传递难题。附代码示例和视频演示。

  5. SwiftUI 2.0 —— Commands(macOS 菜单)

    探索 SwiftUI 2.0 在 macOS 中添加菜单的技巧!了解 Commands 协议、CommandMenu、Button 和 MenuButton 的用法,以及如何自定义快捷键和系统菜单,实现多平台适配。

  6. SwiftUI 2.0 —— @StateObject 研究

    WWDC20 后,SwiftUI 2.0 引入 @StateObject。本文研究其与 @ObservedObject 的区别,通过代码详解生命周期管理。掌握 @StateObject,优化数据流,避免生命周期隐患。

  7. @State 研究

    深入解析 SwiftUI 中 @State 的实现原理及运行机制,并提供扩展 @State 功能的思路和示例。理解响应式编程,提升 SwiftUI 开发效率。