写点什么

开启 UI 开发新篇章,SwiftUI 5 不再使用 Combine,扩展更多动画功能

  • 2023-07-21
    北京
  • 本文字数:1081 字

    阅读完需:约 4 分钟

开启UI开发新篇章,SwiftUI 5 不再使用Combine,扩展更多动画功能

在 WWDC 2023 中,苹果展示了其 UI 编程声明式框架的最新迭代。SwiftUI 5 使用全新的 Observation 框架取代 Combine,彻底改变了其反应式的基础。此外,这次迭代中还增加了对分阶段动画、 ScrollView 优化,新手势等等的支持。


全新 Observation 框架的采用带来了众多优势,其中包括语法的简化和语义的精简、跟踪选项和集合的可能性,以及对 State 和 Environment 用法的扩展以取代 StateObject 和 EnvironmentObjectObservation 框架还取消了使用 @Published 属性包装器注解所有可被观测的属性的要求,开发者可通过在类的层面上使用 @Observable 宏让该类的所有属性可被观测,如下面例子所示:


@Observable class Library {    var books: [Book] = [Book(), Book(), Book()]}
复制代码


对希望避免观测到特定属性的特殊情况而言,开发者可在该属性上使用 ObservationIgnored 宏。有意思的是,对所有使用 SwiftUI 和 Combine 构建应用的开发者而言,新框架的采用可逐步进行


Observation 框架无疑是一项重大创新,它将改变开发者构建 SwiftUI 代码的方式。SwiftUI 的最新迭代中同样包含对框架的渐进式改进,意在扩展其功能或追加开发者们习惯在 UIKit 中见到的功能。


对 ScrollView 中 scrollPosition 的追踪可能无疑是个颇受欢迎的小改进。在视图滚动到一个新位置时,scrollPosition 修改器将更新状态变量并将其识别为第一可见视图。反之,开发者也可赋值该状态变量以跳转到任意特定视图中。此外,开发者也可通过全新 ScrollTargetBehaviour 协议选择一个滚动行为。


随着对完成处理其的引入,SwiftUI 动画也得到了细微但却功能强大的扩展。这个不起眼的新功能让分段动画的定义成为可能,比如分阶段或分状态的(循环)动画。


开发者也可使用全新的 PhaseAnimator 视图迭代一系列的阶段,并为每一阶段定义特定动画,而不再需要直接通过完成处理器手动连接各个阶段才能构建分段动画。


SwiftUI 5 中也引入了两个新的手势,RotateGesture 和 MagnifyGesture,用于追踪视图的旋转和放大。RotateGesture 取代了原先的 RotationGesture,而 MagnifyGesture 则取代了原先的 MagnificationGesture。这两个新增的类提供了更为简化的语法,让视图的旋转和放大变换更易于应对。


这些新功能将于 iOS 17、iPadOS 17、macOS 17,以及苹果在明年秋季发布的其他操作系统中开始使用。关于 SwiftUI 中新功能的完整概述,可参见苹果于 WWDC 2023 的演示


原文链接

SwiftUI 5 Leaves Combine behind, Extends Animations, and More


相关阅读:

苹果推出 SwiftData,持久化框架的技术革新

Swift 5.8新特性预览:支持函数向后部署

2023-07-21 08:004931

评论

发布
暂无评论
发现更多内容

中文域名和英文域名有什么区别?中文域名有哪些优势?

国科云

一键自动化博客发布工具,用过的人都说好(51cto篇)

程序那些事

工具 自动发布

MySQL 给用户添加 ALTER VIEW 的权限

华为云开发者联盟

MySQL 数据库 华为云 华为云开发者联盟 企业号2024年5月PK榜

软件测试学习笔记丨MyBatis 多条件查询和模糊查询

测试人

软件测试

金蝶发布AI管理助手 重构苍穹AI平台

人称T客

不容错过的邀请:《哈利·波特》全系列中英文版本上线华为阅读

最新动态

什么是ARP攻击,怎么做好主机安全,受到ARP攻击有哪些解决方案

德迅云安全杨德俊

数据库索引回表困难?揭秘PolarDB存储引擎优化技术

阿里云瑶池数据库

数据库 阿里云 polarDB 分布式,

vivo蓝心大模型登陆火山方舟,一站式方案实现智能普惠

新消费日报

8000-12000奖金等你拿,OpenTiny 开源之夏10大导师齐上阵,带你立刻get 项目详情!!!

OpenTiny社区

Vue 前端 低代码 组件库 OpenTiny

结合多模态 AI 谷歌展示 AR 眼镜原型机;Meta 被曝开发带摄像头的 AI 耳机丨 RTE 开发者日报 Vol.204

声网

解锁高效创新:IPD策略如何重塑产品开发流程

IPD产品研发管理

项目管理 产品经理 IT IPD 产品研发

Altair 宣布收购 Research in Flight,为空气动力学分析开辟新途径

财见

2024/25 奥特斯再度迈入增长之路

财见

2024-05-15:用go语言,考虑一个整数 k 和一个整数 x。 对于一个数字 num, 在其二进制表示中, 从最低有效位开始, 我们计算在 x,2x,3x 等位置处设定位的数量来确定其价值。

福大大架构师每日一题

福大大架构师每日一题

企业如何搭建API经济形成二次增长?

幂简集成

API API经济

代购独立站一键代采:开启全球购物新纪元,无缝连接中国制造与世界市场

Noah

万界星空科技电线电缆行业生产管理智能化MES

万界星空科技

mes 万界星空科技 电线电缆行业 电线电缆mes

宝尊将于2024年5月28日发布2024年一季度未经审计财务业绩

财见

百度百舸 AIAK-LLM 的大模型训练和推理加速实践

Baidu AICLOUD

训练 推理 大模型

企业级小程序技术平台与中间件提供商凡泰极客完成近亿元B轮融资

FN0

小程序 小程序化

MyBatis如何通过拦截器修改SQL

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

Python最容易犯的五个错误,你中了几个?

我再BUG界嘎嘎乱杀

Python 编程语言 开发语言

中国科学家颜宁荣膺2024欧莱雅-联合国教科文组织“世界杰出女科学家成就奖”

财见

一文读懂Pencils Protocol Valut的收益叙事:一鱼多吃

西柚子

开启UI开发新篇章,SwiftUI 5 不再使用Combine,扩展更多动画功能_Android/iOS_Sergio De Simone_InfoQ精选文章