写点什么

iOS 26 的 SwiftUI 拥抱 LiquidGlass,并引入 WebView 和富文本编辑

  • 2025-06-30
    北京
  • 本文字数:1231 字

    阅读完需:约 4 分钟

大小:576.75K时长:03:16
iOS 26的SwiftUI拥抱LiquidGlass,并引入WebView和富文本编辑

在 2025 年的全球开发者大会(WWDC)上,苹果公司发布了其声明式UI框架SwiftUI的最新版本,引入了两项重大更新:一种新的 SwiftUI 原生WebView类型和在 TextView 控件中支持富文本编辑。此次更新还带来了大量额外的改进和新的性能工具。

 

新的WebView类型可以在应用中显示 HTML、CSS 和 JavaScript 内容。默认情况下,该视图提供了用户熟悉的浏览体验,包括支持使用链接在网页之间导航,以及前进和后退按钮。然而,你可以通过将WebViewWebPage关联来完全自定义导航行为。这是一个@Observable类,暴露了网页内容属性,并允许跟踪它们的变化。例如,你可以通过观察currentNavigationEvent来跟踪页面何时完全加载。

 

为了使富文本编辑易于实现,iOS 26 中的 SwiftUI 扩展了TextEditor视图,支持AttributedString。正如苹果在WWDC上展示的那样,启用富文本编辑就像在初始化TextEditor时更改绑定状态的类型一样简单:


struct RichEditorView: View {    @State private var text = AttributedString()

var body: some View { TextEditor(text: $text) }}
复制代码


苹果提供了一个代码示例,开发者可以使用它来探索全部的功能范围,包括添加自定义控件和限制编辑器中可用的格式选项。


新的宏@Animatable简化了视图、视图修饰符、文本渲染器、形状以及其他结构体或类的动画功能。它通过类型中声明的可动画属性实现animatableData属性,自动合成以遵循Animatable协议。例如,你可以像下面这样使用它来实现widthangle属性的动画,同时排除不可动画的属性,如isOpaque


@Animatablestruct CoolShape: Shape {    var width: CGFloat    var angle: Angle    @AnimatableIgnored var isOpaque: Bool

// ...}
复制代码


另外,还有几项新增功能能够使使用 UIKit 和 SwiftUI 的开发者从中受益。值得注意的是,新的UIHostingSceneDelegate类使得将 SwiftUI 场景桥接到 UIKit 成为可能,就像UIHostingController允许管理 SwiftUI 视图一样。这将集成能力扩展到完整的场景中,而不仅仅是单个视图。


最后但同样重要的是,SwiftUI 完全支持新的 Liquid Glass 设计语言。Liquid Glass是一种动态材料,结合了玻璃的光学特性和流动性。它会从下方折射内容,从周围反射光线,并在其边缘产生透镜效果,为界面带来深度和动感。

 

要利用这一点,应用不需要重新设计,只需使用 Xcode 26 重新构建以利用新设计即可。然而,为了完全拥抱 Liquid Glass,苹果建议审查前景元素如何与动态背景形成对比,并选择使用新的系统材料以确保可访问性和视觉和谐。

 

另外,iOS 26 还包括了Swift Charts的增强版本,现在已支持3D图形。这次更新允许开发者在三维空间中绘制数据,可视化数学曲面,并创建更具沉浸感和信息量的视觉化效果。Swift Charts 现在能够让开发者可以配置相机,调整光线和材料,并微调渲染属性。

 

SwiftUI 26 包含的内容远不止我们这里所能涵盖的,所以请查看官方的WWDC会议以获取全部细节。


查看英文原文:SwiftUI for iOS 26 Embraces LiquidGlass, Introduces WebView and Rich Text Editing

2025-06-30 17:005374

评论

发布
暂无评论

数据库周刊27丨6月最新国产数据库排行;OB成立新公司奥星贝斯;腾讯云发布图数据库TGDB;Oracle坏块修复;MySQL故障排查导图;经典SQL语句大全...

墨天轮

数据库

关于UML、4+1视图、系统架构的思考

吴建中

2020年6月11日 高性能MySQL

瑞克与莫迪

vs code中使用vetur对eslint格式化

玏佾

vscode

Intellij IDEA 右击没有run

程李文华

作业 - 1 & 2

Happy-Coming

Homework

面向对象五大基本原则

彭阿三

面向对象设计 面向对象五个基本原则 基本原则

系统/子系统/模块/组件/框架/架构

gen_jin

非结构化数据可视化 —— 现在与未来

做技术BP的文案Gou

人工智能 大数据 数据可视化 非结构化数据

可视化算法网站汇总,从此简单学算法!(附动图)

王磊

Java 算法

<<架构师训练营>>第一周作业

R20114

极客大学架构师训练营

钟离昧的一梭子架构师之旅

XxxxxxxMr

【写作群星榜】6.5~6.11写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

读笔 | 既然拖延症难以根治,不妨暂且享受它

张鸱鸺

读书笔记 时间管理 随笔杂谈

作业一:食堂就餐卡系统设计

seng man

极客大学架构师训练营

Android 无埋点从入门到放弃:了解 Java 字节码

GrowingIO技术专栏

游戏夜读 | 如何成长为游戏人?

game1night

你并不理解i++和++i

flyhero

Java 程序员 JVM i++

钟离昧的第一张架构设计图之旅

XxxxxxxMr

架构第一周-学习总结

seng man

使用VSCode连接到IBM Cloud区块链网络

程序那些事

智能合约 hyperledger fabric ibm cloud

LocalDateTime和Date的比较与区别

彭阿三

时间格式化 LocalDateTime Date

30岁,就被大厂抛弃了

J.Smile

求职

架构师训练营第一周学习总结

R20114

极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课

John(易筋)

极客时间 极客大学 架构设计 极客大学架构师训练营 架构文档

数据同步,应该如何设计

迹_Jason

搭建websocket消息推送服务,必须要考虑的几个问题

GoEasy消息推送

websocket 消息推送 即时通讯

02-kubernetes自建CA及双向TLS认证

绿星雪碧

Kubernetes TLS CA证书

架构第一课学习总结

师哥

独立开发者为什么不需要运营也能月薪几万,甚至几十万?

非著名程序员

程序员 独立开发者 副业赚钱 程序人生 提升认知

从微服务到Service Mesh

博文视点Broadview

架构 微服务 Service Mesh istio 架构师

iOS 26的SwiftUI拥抱LiquidGlass,并引入WebView和富文本编辑_软件工程_Sergio De Simone_InfoQ精选文章