写点什么

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:005626

评论

发布
暂无评论

【中秋特辑】嫦娥妹妹,你别着急~

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

支撑全产业AI,需要怎样的算力服务?

脑极体

手把手教你如何进行拆解竞品

产品海豚湾

产品经理 需求分析 竞品分析 9月月更 市场调研

软件测试 | 测试开发 | 测试人生 | 疫情之下,1个月内涨薪50%拿下亿级流量金融上市公司新 offer,我柠檬了~

测吧(北京)科技有限公司

测试

LG稳居高地再布新棋 顺应需求领跑高端家电市场布局新生态

极客天地

DevSecOps 落地三部曲|小孩子才做选择,极狐GitLab 安全、高效全都要

极狐GitLab

DevOps 运维 安全 DevSecOps 极狐GitLab

「九章云极DataCanvas」完成C+轮融资,用云中云战略引领数据智能基础软件升级

九章云极DataCanvas

机器学习 数据智能

热点直播 | 财务共享中心数字化转型,推动央企构建一流财务管理体系

望繁信科技

直播 技术干货

百度工程师教你玩转设计模式(工厂模式)

百度Geek说

Java 设计模式 企业号九月金秋榜

基于threejs中秋佳节之际带你遨游星空🌃

南城FE

前端 中秋 three.js

企业如何规划SRM供应商协同平台?实现最佳应用价值

数商云

数字化转型 企业数字化

LeetCode-448. 找到所有数组中消失的数字(Java)

bug菌

9月日更 Leet Code 9月月更

云渲染为设计行业带来哪些福利?

3DCAT实时渲染

软件测试 | 测试开发 | 专项测试技术初识Hook

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试人生 | 拿到多个 offer 从了一线互联网公司并涨薪70%,90后小哥哥免费分享面试经验~

测吧(北京)科技有限公司

测试人生

ERP是什么?

优秀

ERP

为什么低代码和专业代码走向融合才能破解低代码困境?

牛刀专业低代码

低代码 低代码平台

软件测试 | 测试开发 | MockServer 服务框架设计

测吧(北京)科技有限公司

MockServer

WAIC|九章云极DataCanvas公司携因果学习技术成果精彩亮相!

九章云极DataCanvas

人工智能 开源 因果学习

软件测试 | 测试开发 | 测试人生 | 毕业2年,拒绝独角兽入职名企大厂涨薪10万+,这个95后小姐姐好飒

测吧(北京)科技有限公司

测试人生

Java进阶(十)tomcat中context配置

No Silver Bullet

tomcat Context 9月月更

软件测试 | 测试开发 | 测试人生 | 年薪50w+ 并入职名企大厂,这是双非学历小哥哥给自己30岁的礼物

测吧(北京)科技有限公司

测试人生

软件测试 | 测试开发 | 项目倒排,跟工期不足say byebye~

测吧(北京)科技有限公司

测试人生

跟我一起学mybatis

楠羽

mybatis 笔记 9月月更

中移链DDC-SDK技术对接全流程(二)

BSN研习社

区块链、

【JS】两种实现-懒加载的方式-附无限滚动案例

Sam9029

JavaScript 前端 懒加载 9月月更

2022 WAIC 闭幕,融云提供分论坛元宇宙直播技术支持

融云 RongCloud

直播 元宇宙

同频共振数据时代,AntDB数据库与永洪科技完成产品互认证

亚信AntDB数据库

数据库 AntDB 国产数据库 AntDB数据库

软件测试 | 测试开发 | 测试人生 | 从传统行业到名企大厂,薪资翻倍,我做到了

测吧(北京)科技有限公司

面试

软件测试 | 测试开发 | 测试人生 | 从外行到外包,从手工测试到知名互联大厂测开 这个90后小姐姐是怎么腾飞的?

测吧(北京)科技有限公司

测试人生

LeetCode-316. 去除重复字母&&1081.不同字符的最小子序列(Java实现)

bug菌

9月日更 Leet Code 9月月更

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