💡
原文中文,约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进行渲染。
➡️