写点什么

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

评论

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

开辟ICT新视野 直通华为云专家:一堂华为云Astro低代码启蒙课 ——华为云HCSD校园沙龙之西安站

华为云PaaS服务小智

云计算 软件开发 低代码 华为云

IM系统,WorkPlus如何成为企业即时通讯协作的首选?

WorkPlus

IM聊天系统

玩转 CODING 自动化助手,助力高效研发!

CODING DevOps

代码检查过程中为什么需要涉及到编译呢?

华为云开发者联盟

开发 华为云 华为云开发者联盟 代码检查 企业号9月PK榜

腾讯云数据库再获顶会认可,论文入选VLDB2023

Geek_2d6073

Docker 入门教程(简明易懂、零基础篇)

程序员万金游

#运维 #后端 #docker

用智能文字识别技术赋能古彝文数字化之路

dvlinker

人工智能 深度学习 合合信息 古彝文 智能文字识别技术

Sovit2D组态设计 Web Scada烟气脱硫工艺流程

2D3D前端可视化开发

物联网 组态软件 工业控制 工业自动化 烟气脱硫

企业沟通平台私有部署,让沟通更高效数据更安全

WorkPlus

一文了解企业如何实现文件自动化实时同步

镭速

文件同步

2000字说清音视频在社交娱乐场景中的应用!

X2Rtc

音视频 RTC 社交娱乐 融合通信

支持私有化部署的WorkPlus,助您构建定制化的即时通讯平台

WorkPlus

DeFi 集成:扩大加密货币交易平台开发的视野

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 区块拉开发

软件测试 | AI大模型应用开发实训营来啦~ 大模型学习资料免费领

测试人

人工智能 程序员 AI 软件测试 大数据模型

2023-09-27:用go语言,在一个 n x n 的国际象棋棋盘上,一个骑士从单元格 (row, column) 开始, 并尝试进行 k 次移动。行和列是 从 0 开始 的,所以左上单元格是 (0

福大大架构师每日一题

福大大架构师每日一题

聚焦华为全联接大会:和鲸科技与华为携手助推交叉学科应用型数据科学人才培养

ModelWhale

华为 人才培养 数据科学 高等教育 交叉学科

企业即时通讯解决方案,WorkPlus助力高效沟通与协作

WorkPlus

企业即时通讯

如何选择适合企业的移动应用管理平台?

WorkPlus

pycharm pro for mac(Python编辑开发软件) v2023.2.1中文激活版

mac

pycharm 苹果mac Windows软件 集成开发软件

面试官:你工作了3年了,这道算法题你都答不出来?

高端章鱼哥

面试 算法 LeetCode

基于Java+vue开发的企业级人力资源管理系统

金陵老街

免费但很全能,Amazon CodeWhisperer 让编程更快

科技热闻

腾讯大牛耗时1个月整理的"JVM学习笔记"深入底层,面面俱到!

小小怪下士

Java JVM

龙蜥社区与您相约 2023 KubeCon

OpenAnolis小助手

开源 容器 云原生 龙蜥社区 kata

PDF Squeezer mac(pdf文档大小压缩软件) v4.3.7永久激活版

mac

苹果mac Windows软件 PDF Squeezer 文件压缩软件

根据人类反馈进行强化学习的5大关键步骤

澳鹏Appen

大模型 数据训练 生成式AI LLM RLHF

打造次世代分析型数据库(四):几十张表关联?小Case!

腾讯云大数据

数据库

专业私有化视频会议软件,WorkPlus Meet助力企业构建高效协作的沟通平台

WorkPlus

袋鼠云代码检查服务,揭秘高质量代码背后的秘密

袋鼠云数栈

大数据 数据中台 代码检查

软件测试/测试开发丨探索AI与测试报告的完美结合,提升工作效率

测试人

人工智能 程序员 软件测试 ChatGPT

适合企业的跨隔离网文件摆渡的四种方式及优缺点

镭速

跨网文件交换 跨隔离网文件摆渡

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