Grow on iOS 26:UIKit + SwiftUI 混合架构下的 Liquid Glass 适配实战

Grow on iOS 26:UIKit + SwiftUI 混合架构下的 Liquid Glass 适配实战

💡 原文中文,约7800字,阅读约需19分钟。
📝

内容提要

Grow是一款在173个国家推荐的健康管理应用,适配iOS 26时面临多项挑战。开发团队分享了在UIKit与SwiftUI混合架构下的经验,包括对Sheet、Navigation和Popover的改造,探讨了UI元素的动态尺寸和效果控制。通过优化设计与技术实现,Grow旨在提升用户体验,并展示了“玻璃文字”效果及相关Demo工程。

🎯

关键要点

  • Grow是一款在173个国家推荐的健康管理应用,适配iOS 26时面临多项挑战。
  • 开发团队分享了在UIKit与SwiftUI混合架构下的经验,包括对Sheet、Navigation和Popover的改造。
  • Grow旨在通过优化设计与技术实现提升用户体验,并展示了“玻璃文字”效果及相关Demo工程。
  • 适配过程中的基本原则是保持旧版本用户体验不变,并为新用户提供熟悉的交互和新视觉体验。
  • 在Sheet改造中,需移除自定义背景以展现Liquid Glass效果,并控制Scroll Edge Effect。
  • Navigation改造中,Grow使用UINavigationController并恢复原生UINavigationBar以提高开发效率。
  • 使用popoverPresentationController实现Morph Menu效果,增强Liquid Glass元素的融入。
  • 在UIBarButtonItem的尺寸计算中,需处理动态宽度和内容变化的问题。
  • Liquid Glass效果的控制需要调整内容的抗压缩优先级和内容环抱优先级。
  • 通过Core Text实现可自定义内容的“玻璃文字”效果,提升视觉表现。
  • 提供了一个demo工程Insights,便于理解和实践上述内容。

延伸问答

Grow应用在适配iOS 26时遇到了哪些挑战?

Grow应用在适配iOS 26时面临了如何实现原生的morph效果、精确控制Scroll Edge Effect和处理自定义导航栏元素的动态尺寸等挑战。

Grow是如何改造Sheet以展现Liquid Glass效果的?

在Sheet改造中,Grow移除了自定义背景以展现Liquid Glass效果,并通过ToolbarItem激活Scroll Edge Effect。

Grow在Navigation改造中采取了哪些措施?

Grow使用UINavigationController并恢复了原生UINavigationBar,以提高开发效率和统一设计语言。

如何在Grow中实现Morph Menu效果?

Grow通过使用popoverPresentationController将日期选择组件调整为自定义的popover menu形式来实现Morph Menu效果。

Grow是如何处理UIBarButtonItem的动态尺寸计算的?

Grow在UIBarButtonItem的尺寸计算中,通过设置sizingOptions为.intrinsicContentSize来确保内容尺寸的正确计算。

Grow的“玻璃文字”效果是如何实现的?

Grow通过Core Text实现可自定义内容的“玻璃文字”效果,利用CTFontCreatePathForGlyph将字形转换为CGPath进行渲染。

➡️

继续阅读