写点什么

开启 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:004830

评论

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

使用 Apache JMeter Flexible File Writer 插件的详细指南

霍格沃兹测试开发学社

使用Python获取HTTP请求头数据

霍格沃兹测试开发学社

使用Python获取HTTP请求头数据

霍格沃兹测试开发学社

报名参加通义灵码高校训练营,领 300 元阿里云产品通用抵扣金

阿里巴巴云原生

阿里云 云原生 通义灵码

快速掌握 WinRAR:详细安装与使用指南

霍格沃兹测试开发学社

2024年全球架构师峰会(ArchSummit深圳站)

后台技术汇

Java 后台开发 架构师 全球架构师峰会 ArchSubmit

破除“数据孤岛”新策略:Data Fabric(数据编织)和逻辑数据平台

Aloudata

数据管理 数据孤岛 数据虚拟化 Data Fabric 数据编织

从钉钉到跨境电商技术演变,HHO通过NineData实现全球化业务布局

NineData

数据安全 数据管理 NineData 两氢一氧 本地机房

一文读懂Lumoz节点的潜力与收益,加密收益新范式

BlockChain先知

质检迈入新时代,天润融通推出基于大模型的质检3.0解决方案

天润融通

人工智能

Web3新视野:Lumoz节点的潜力与收益解读

石头财经

利用JAVA语言调用GLM-4接口实战指南

幂简集成

Java API 大模型

报名参加通义灵码高校训练营,领 300 元阿里云产品通用抵扣金

阿里云云效

阿里云 云原生

MQTTX 1.10.0 发布:CLI高级文件管理与配置

EMQ映云科技

mqtt mqttx

VMware vCenter Server 7.0U3r 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

sysin

vSphere vcenter esxi

小鲤AI志愿填报助手:一键探索最适合你的大学专业

AI Inception

AI 高考 AIGC rag

Altair 助力优化摩托车空气动力学性能,实现最佳的整流罩设计

Altair RapidMiner

人工智能 仿真 AIGC altair

数据虚拟化和 Data Fabric(数据编织)对企业数据管理意味着什么?

Aloudata

数据管理 数据孤岛 数据虚拟化 Data Fabric 数据编织

使用 Apache JMeter 吞吐量控制器的详细指南

霍格沃兹测试开发学社

华为阅读亮相BIBF:以AI赋能出版行业,引领阅读新业态

最新动态

英伟达成全球市值第一公司;苹果暂停下一代高端头显研发丨 RTE 开发者日报 Vol.227

声网

VMware vCenter Server 8.0U1e 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

sysin

vSphere vcenter esxi

火山引擎×OPPO,以多样化AI智能体为手机用户带来全新体验

新消费日报

使用 Apache JMeter 事务控制器的详细指南

霍格沃兹测试开发学社

多环境镜像晋级/复用最佳实践

阿里巴巴云原生

阿里云 云原生 云效

Postman 集合变量使用详解

霍格沃兹测试开发学社

解决华为NEXT应用开发中模拟器组件缺失问题

彭康佳

鸿蒙 an'droid

VMware vCenter Server 8.0U2d 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

sysin

vSphere vmware vcenter esxi

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