首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ask Apple 2022 与 SwiftUI 有关问答(上)

是否有任何建议用来检测列表选择,类似于 “NavigationLink”,但不导航到另一个视图(例如,显示 Sheet 或从列表选择一个选项 )?...contextMenu_2022-10-26_14.01.21.2022-10-26 14_02_29如何对 @State 变量进行测试Q:对于测试 SwiftUI图中 @State 变量是否有推荐方式...A:如果在同一个视图中,有多个相互关联 @State 属性,将他们提取到一个结构中或许是好选择。将他们提取到 view model 中也是一种策略,但不是必须。...单元测试中,很难对 SwiftUI图中依赖( 符合 DynamicProperty 协议 )进行测试。这也是 Redux-like 框架优势之一( 将状态从视图中抽离出来,方便测试 )。...在有些情况下,我想根据视图是否折叠来做决定( 例如,如果展开,详细视图中显示一条信息,如果折叠,则显示一个警告或其他指示 )。

12.2K20

iOS 16 中用 SwiftUI Charts 创建一个折线图

系列文章 如何SwiftUI 中创建条形图 SwiftUI水平条形图 iOS16 中用 SwiftUI 图表定制一个线图 Swift 图表中使用 Foudation 库中测量类型 简单折线图...Charts 创建折线图显示每日步 使用 SwiftUI Charts 创建折线图显示每日步 其他图表 SwiftUI Charts 有许多可用图表选项。...图表创建其他图表类型,显示每日步 使用 SwiftUI 图表创建其他图表类型,显示每日步 让折线图增加可访问性 将图表植入 SwiftUI 一个好处是,可以很容易地使用可访问性修饰符[2]...SwiftUI Charts 中创建一个包含两个系列步数数据折线图 第一次尝试 SwiftUI Charts 中创建一个包含两个系列步数数据折线图 显示系列 折线图中显示多个基于工作日系列...最初尝试折线图中显示多组数据问题是X轴使用了日期。

3.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

Ask Apple 2022 与 SwiftUI 有关问答(下)

因此,如果你正在创建一个视图来显示可滚动内容,并可能进行选择操作,那么 iOS 和 macOS 上使用 List 将有最好体验。...Table 中上下文菜单Q:如果我 TABLE 上添加了一个上下文菜单,我如何确定哪一行导致了菜单显示(无需选择该行)?...Swiftcord[12] 代码展示了如何SwiftUI 下实现倒置列表。阅读 优化 SwiftUI List 中显示大数据集响应效率[13] 一文,了解苹果工程师推荐方法。...macOS APIQ:对于运行 Monterey Mac,能否如何SwiftUI 中实现下面需求建议:打开一个窗口该窗口中初始化数据找到所有打开窗口确定一个窗口是否打开从不在该窗口图中关闭一个窗口...Too complex to type checkQ:我 iOS 14 SwiftUI 中遇到一个问题,我试图有条件地显示 3 个符合 Shape 协议对象中一个。

14.7K30

iOS 16中用SwiftUI Charts创建一个折线图

iOS 16中用SwiftUI Charts创建一个折线图 苹果在WWWDC 2022上推出了SwiftUI图表,这使得SwiftUI图中创建图表变得异常简单。...SwiftUI中创建折线图 How to create a Bar Chart in SwiftUI 简单折线图 从包含一周数据开始,类似于SwiftUI中创建折线图中使用数据。...Charts 创建折线图显示每日步 使用 SwiftUI Charts 创建折线图显示每日步 其他图表 SwiftUI Charts 有许多可用图表选项。...图表创建其他图表类型,显示每日步 让折线图增加可访问性 将图表植入SwiftUI一个好处是,可以很容易地使用可访问性修饰符使图表变得可访问。...SwiftUI Charts 中创建一个包含两个系列步数数据折线图 折线图中显示多个基于工作日系列 最初尝试折线图中显示多组数据问题是X轴使用了日期。

3.4K20

SwiftUI 中实现视图居中若干种方法

欢迎大家 Discord 频道[2] 中进行更多地交流将某个视图父视图中居中显示是一个常见需求,即使对于 SwiftUI 初学者来说这也并非难事。...需求实现下图中展示样式:彩色矩形视图中居中显示单行 Textimage-20220829142518962填充物Spacer最常见也是最容易想到解决方案。...万变不离其宗,掌握了 SwiftUI 布局原理,无论需求如何变化都可轻松应对。...我为本文这种通过多种方法来解决一个问题方式添加了【小题大作】标签,目前使用该便签文章还有: Core Data 中查询和使用 count 若干方法[6]、 SwiftUI图中打开 URL...每周也会对当周博客上新文章以及 Twitter 上发布 Tips 进行汇总,并通过邮件列表形式发送给订阅者。订阅下方 邮件列表[10],可以及时获得每周 Tips 汇总。

6.6K40

SwiftUI内容边距

前言SwiftUI 引入了一组视图修饰符,使我们能够有效地管理视图中安全区域。许多情况下,安全区域是你希望放置内容地方。...今天,我们将了解 SwiftUI 引入新内容边距概念以及它与安全区域区别。创建示例让我们从一个简单示例开始,演示带有一百个项目的列表。...幸运是,SwiftUI 引入了新 contentMargins 视图修饰符,使我们能够图中移动特定类型内容。...根据水平尺寸类别的不同(正常或紧凑),我们使用 contentMargins 视图修饰符来管理水平方向上内容边距。紧凑水平尺寸类别下,我们将内容移动了 200 个点,以便在大屏幕设备上居中显示。...文章从创建示例开始,展示了列表图中如何处理内容边距问题。

11932

Text 中实现基于关键字搜索和定位

欢迎大家 Discord 频道[2] 中进行更多地交流前些日子,一位网友聊天室中就如下 问题[3] 与大家进行了交流与探讨 —— 如何通过 Text + AttributedString 实现类似文章关键字检索功能...了解更多内容,请阅读 SwiftUI 视图生命周期研究[9] 一文优先定位于最靠近屏幕中央搜索结果:/// 从 List 当前显示 transcription 中就近选择 match positionprivate...SwiftUI图中打开 URL 若干方法[10] 一文,了解更多有关 OpenURLAction 内容创建体验感优秀搜索条使用 safeAreaInset 添加搜索栏没有 safeAreaInset...每周也会对当周博客上新文章以及 Twitter 上发布 Tips 进行汇总,并通过邮件列表形式发送给订阅者。订阅 邮件列表[14],可以及时获得每周 Tips 汇总。.../posts/swiftUILifeCycle/[10] SwiftUI图中打开 URL 若干方法: https://www.fatbobman.com/posts/open_url_in_swiftUI

4.2K30

SwiftUI 4.0 全新导航系统

: 由于无需 NavigationLink 中指定目标视图,因此无须创建多余视图实例 对由同一类型值驱动目标进行统一管理( 可以将堆栈中所有视图 NavigationLink 处理程序统一到根视图中...iPad Portrait 显示状态下,默认即为此种模式 balanced 显示左侧栏时候,缩小右侧 Detail 栏尺寸。...不同角色将让 toolbar 外观和排版有所不同( 设备而异 )。...browser iPad 下,当前视图 Title 将显示左侧 image-20220612190914949 editor 不显示返回按钮旁边上页视图 Title image-20220612191040190...相当一部分开发者由于版本适配原因并不会使用新 API ,因此,每个人都需要认真考虑如下问题: 如何从新 API 中获得灵感 如何在老版本中运用编程式导航思想 如何让新老版本程序都能享受系统提供便利

10.2K62

如何SwiftUI 列表变得更加灵活

前言 List 可能是 SwiftUI 附带内置视图中最常用一种,它使我们能够在任何 Apple 平台上呈现“类似于表格视图”用户界面。...元素绑定和自定义滑动操作 接下来,让我们看看如何将完全自定义滑动操作添加到列表中。...为了演示这种情况,我们 List 中嵌套一个 ForEach (因为 SwiftUI 中,列表变化一版都是由 ForEach 触发,而不是由 List 触发)。...下拉刷新 就我个人而言,下拉刷新 SwiftUI 功能请求列表中非常重要,所以我很高兴看到今年版本增加了对这种非常常见 UI 范式内置支持。...item 上调用,而不是列表本身上调用,这为我们提供了很大灵活性,可以根据想要构建 UI 类型动态隐藏或显示每个分隔符。

4.8K41

架构之路 (五) —— VIPER架构模式(一)

开始 首先看下主要内容: 本教程中,您将了解如何SwiftUI和Combine中使用VIPER体系结构模式,同时构建一个允许用户创建公路旅行iOS应用程序,来自翻译。...VIPER架构模式是MVC或MVVM另一种选择。虽然SwiftUI和Combine框架创建了一个强大组合,可以快速构建复杂ui和在应用程序中移动数据,但它们也面临着各自挑战和对架构看法。...路由器Router处理屏幕之间导航。这与SwiftUI不同,SwiftUI中,视图显示任何新视图。...添加一个新变量到类: @Published var trips: [Trip] = [] 这是用户将在视图中看到旅行列表。...Editing Waypoints 最后一个功能是添加路点编辑功能,这样您就可以进行自己旅行了!您可以trip detail视图中重新排列列表

17.4K10

优化 SwiftUI List 中显示大数据集响应效率

找寻问题原因 或许有人会认为,毕竟数据量较大,进入列表视图有一定延迟是正常。但即使 SwiftUI 效能并非十分优秀今天,我们仍然可以做到以更小的卡顿进入一个数倍于当面数据量列表视图。...也就是当显示主界面菜单时,列表视图已经完成了实例创建(可以通过 ListEachRowHasID 构造函数中添加打印命令得以证明),因此也不应是实例化列表视图导致延迟。... SwiftUI 视图生命周期研究[3] 一文中,我对 List 如何对子视图显示进行优化做了一定介绍。...虽然我们已经找到了导致进入列表视图卡顿原因,但如何在不影响效率情况下通过 scrollTo 来实现到列表端点滚动呢?...除非没有其他选择,否则我并不推荐大家对 UIKit ( AppKit ) 控件进行重新包装,应使用尽可能微小侵入方式对 SwiftUI 原生控件进行补充和完善。

9.1K20

打造可适配多平台 SwiftUI 应用

这种做法不仅可以解决跨平台兼容性问题,还有其他好处:可以改善视图中代码整洁度(减少条件编译语句使用)可以改善 SwiftUI 不同版本之间兼容性当然,要创建并使用这类代码,前提是开发者必须已经对...详情,请自行查看 代码在这里需要特别注意是,不知道出于什么原因(或许与随机种子有关),通过同一个场景声明创建根视图,如果使用@State 创建 UUID 或随机,即使不同窗口中,即使窗口创建时间不同...,UUID 或随机值是完全一样。... SwiftUI 中,只要理解了状态、声明和响应之间关系,开发者就可以用任何想用形式来组织数据。无论是将状态进行统一管理,还是分散不同图中,都有各自优势和意义。...欢迎你通过 Twitter、 Discord 频道 或博客留言板与我进行交流。订阅下方 邮件列表,可以及时获得每周最新文章。

3.1K80

打造可适配多平台 SwiftUI 应用

这种做法不仅可以解决跨平台兼容性问题,还有其他好处: 可以改善视图中代码整洁度(减少条件编译语句使用) 可以改善 SwiftUI 不同版本之间兼容性 当然,要创建并使用这类代码,前提是开发者必须已经对...“电影猎手”中,我们 App 位置创建了 Store(保存应用状态以及主要处理逻辑单元)实例,并通过 .environmentObject(store) 注入到根视图中。...详情,请自行查看 代码[8] 在这里需要特别注意是,不知道出于什么原因(或许与随机种子有关),通过同一个场景声明创建根视图,如果使用@State 创建 UUID 或随机,即使不同窗口中,...即使窗口创建时间不同,UUID 或随机值是完全一样。... SwiftUI 中,只要理解了状态、声明和响应之间关系,开发者就可以用任何想用形式来组织数据。无论是将状态进行统一管理,还是分散不同图中,都有各自优势和意义。

2K10

【visionOS】从零开始创建第一个visionOS程序

创建你Xcode投影页面链接 Xcode中选择File >新比;项目。导航到模板选择visionOS部分,并选择App模板。当出现提示时,为项目指定一个名称以及其他选项。...你也可以图中添加SwiftUI手势识别器来处理点击、长按、拖动、旋转和缩放手势。...在为visionOS构建应用程序时,请考虑如何为应用程序界面添加深度。该系统提供了几种显示3D内容方法,包括现有窗口中,卷中以及沉浸式空间中。选择最适合你应用和你提供内容选项。...当你准备界面中显示3D内容时,使用RealityView。这个SwiftUI视图作为你RealityKit内容容器,并允许你使用熟悉SwiftUI技术更新内容。...当指定手势发生在实体上时,SwiftUI执行提供闭包。 下面的示例将一个点击手势识别器添加到上一个示例中球体视图中

72940

如何SwiftUI 中创建悬浮操作按钮

以下是 Twitter 应用中悬浮操作按钮示例。Twitter App 最重要操作步骤,发布推文时使用悬浮操作按钮。如下图,右下角有一个蓝底中间有加号按钮。...下面我们就来详细介绍一下还如何实现这个悬浮按钮需求。创建悬浮操作按钮如何 SwiftUI 创建一个类似 Twitter App 中悬浮按钮。...以下是一个简单列表视图,嵌套在导航视图和选项卡视图中列表显示了 item 加索引内容。...总结在本文中,我们学习了如何SwiftUI 中创建一个悬浮操作按钮,它是 Android 和 Material Design 中常用 UI 元素。通过逐步实现悬浮按钮各个特性来完成这个过程。...希望本文内容对你 SwiftUI 开发中有所帮助,能够轻松地实现漂亮悬浮操作按钮,增强应用界面和用户交互体验。我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

10432

面向所有人 UI 编程 :透过点按弹窗初尝 SwiftUI

本文我将用如下图中一个例子来展示如何设置点按弹窗。下图中程序功能很简单:长按这句名言后,会出现点按弹窗,你可以点击复制按钮将这句话复制到系统剪贴板中。 ? 试想你是一名美术,完全不了解程序。...开个玩笑,我们还缺一步,把这段文字翻译成 SwiftUI 写法就行了。 透过 SwiftUI 语法了解如何设置点按弹窗 这个功能全部实现代码如下,我会在下文中逐步讲解每一段代码用途。 ?...纵向排列 View SwiftUI 里叫做 VStack,它用一个花括号 {包住里面的内容};而文字 View SwiftUI 里叫做 Text。...中文里圆括号中各种要求,正是 SwiftUI各种修改器,语法结构是 「.修改器名字」。比如下图中我们想修改为小标题字体,就写 .font(.headline)。 ?...若你想仔细学习 SwiftUI 和苹果或安卓应用程序开发,欢迎文末写下你想学习内容,我会参考写文。

2.1K40

SwiftUI 与 Core Data —— 数据获取

本文中我们将探讨 SwiftUI图中批量获取 Core Data 数据方式,并尝试创建一个可以使用 mock 数据 FetchRequest。...NSFetchedResultsController 并获取首批数据操作是从 onAppear 中发起,由于 TCA Action 处理机制,数据首次显示有可感知延迟( 效果远不如在视图中通过...不可在 update 方法中同步地改变引发视图更新数据与 SwiftUI 图中更新 Source of truth 逻辑一致,一个视图更新周期中,不能对 Source of truth 再度更新...数据( 因为 WrappedID 存在,我们可以很容易创建 mock 数据 )无论上述哪种方式,开发者都需放弃使用 SwiftUI 原生 Section 功能,惰性容器中,根据提供附加数据自行对数据做分段显示处理...在下一篇文章中,我们将探讨如何SwiftUI 中安全地响应数据,如何避免因为数据意外丢失而导致行为异常以及应用崩溃。希望本文能够对你有所帮助。

4.6K30

Xcode 11 初体验

按住 Option 按键点击它,会纵向分割, 下图是一个分割后界面示例 上图中界面被分成了 3 个编辑窗口。左边被上下分割成了两个小窗口,右边被单独分割出一个大窗口。...指定文件打开位置 上面我们介绍了窗口分割, Xcode 11 中,你还可以按住 Option + Shift,然后左边点击要打开文件,这时会出现窗口选择提示 你可以用键盘,或者鼠标任意方式选择你要打开这个文件窗口...当你项目关联了版本控制工具时,比如 Git, Xcode 会检测出当前文件哪些地方相对于上次递交版本有更改,并且会通过左边显示一个蓝色线条标记出来: Change Bar 点击左键还可以选择 show...Git Tab页面,会展示出当前本地 Branches 列表、Stash Changes 列表、Tags 列表、Remotes 远程仓库列表。...设备管理窗口中,现在增加了这几个选项 根据 Network Link 可以选择你需要状态,当然 Thermal status 可以选择!都可以让你 APP 更有预期状况下运行。

3.2K10
领券