首页
学习
活动
专区
圈层
工具
发布

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

Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为下篇。...Swiftcord[12] 的代码展示了如何在 SwiftUI 下实现倒置列表。阅读 优化在 SwiftUI List 中显示大数据集的响应效率[13] 一文,了解苹果工程师推荐的方法。...不支持整个列表填充,请对此提出反馈。...将背景扩展到安全区域Q:如果我有一个自定义的容器类型,可以接受一个顶部和底部的视图,是否有办法让 API 的调用者将所提供的视图的背景扩展到安全区域内,同时将内容( 如文本或按钮 )保留在安全区域内?...macOS APIQ:对于运行 Monterey 的 Mac,能否如何在 SwiftUI 中实现下面需求的建议:打开一个窗口在该窗口中初始化数据找到所有打开的窗口确定一个窗口是否打开从不在该窗口的视图中关闭一个窗口

19.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    如下图,在右下角有一个蓝底中间有加号的按钮。下面我们就来详细介绍一下还如何实现这个悬浮按钮需求。创建悬浮操作按钮如何 SwiftUI 创建一个类似 Twitter App 中的悬浮按钮。...将一个按钮放在内容视图上。这将在列表视图上添加一个加号图像按钮。示例运行截图如下:悬浮按钮位于屏幕的右下角接着,是需要实现需求中的第二步,使按钮与内容视图对齐到右下角。...我们还在按钮周围添加了填充,以使其不会过于靠近边缘。示例运行截图如下:使悬浮按钮呈现圆形接着,是需要实现需求中的第三步,使悬浮按钮具有圆角形状,并在中心具有一个图标。...添加阴影最后,是需要实现需求中的第四步,使悬浮按钮带有一个轻微的阴影。我们通过添加阴影为其增色,使其看起来像悬浮。...总结在本文中,我们学习了如何在 SwiftUI 中创建一个悬浮操作按钮,它是 Android 和 Material Design 中常用的 UI 元素。通过逐步实现悬浮按钮的各个特性来完成这个过程。

    4K32

    为什么 SwiftUI 的修饰符顺序很重要

    我们将在下一章中查看为什么会发生这种情况,但是首先,我想看看这种行为的实际含义。...如您所见,我们使用 ModifiedContent 类型堆叠——每个视图都需要一个视图进行转换以及要进行的实际更改,而不是直接修改视图。 这意味着修饰符的顺序很重要。...使用修饰符的一个重要副作用是,我们可以多次应用相同的效果:每个修饰符都会简单地添加到以前的内容中。...例如,SwiftUI 为我们提供了 padding() 修饰符,该修饰符在视图周围添加了一些空间,从而不会将其推到其他视图或屏幕边缘。...如果我们应用填充,然后应用背景色,然后应用更多填充和不同的背景色,则可以为视图提供多个边框,如下所示: Text("Hello World") .padding() .background

    2.9K20

    苹果正在为系统级支持 MCP 做准备 | 肘子的 Swift 周报 #0104

    苹果正在为系统级支持 MCP 做准备 根据 9TO5Mac 的报道[4],苹果正在为其生态系统添加 MCP(Model Context Protocol)支持,以实现智能体 AI 功能。...随着 iPadOS 26 引入类似 macOS 的窗口控制和菜单栏,开发者需要重新考虑应用的布局适配。...Weichao Deng[7]探讨了新增的 Window Controls 和 Corner Adaptation Margins,以及如何在不同场景下采纳这些 API,让 iPad 应用更好地适配类桌面化的多窗口体验...返老还童看 macOS (Benjamin Button Reviews macOS)[13] 近几年,苹果一直尝试统一 macOS 与 iOS 的设计语言,这个趋势在最新的版本中,通过 Liquid...文中特别强调了几个容易被忽视的测试点:iPhone 横屏模式(”最容易发现 UI bug 的地方“)、iPhone SE 小屏适配、以及真实场景下的网络切换(如地铁进出隧道)等。

    21510

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

    对 iOS 和 iPadOS 来说,一个按钮或许有效,但对 macOS 就不太适合了。另外,.contextAction 支持多选。它还会回来吗?...阅读 SwiftUI 的动画机制[8] 一文,了解更多有关动画的内容。自适应高度 SheetQ:如何在 iOS16 中呈现与动态内容高度相匹配的 Sheet?...场景的内容视图定义了场景创建的窗口中的视图内容,但场景本身定义了应用程序的整体结构。SwiftUI 4.0 中,WindowGroup 获得了相当大的更新,真正具备了开发 macOS 应用的能力。...WindowGroup 和 OpenWindowActionQ:在 macOS 上是否可以在创建新窗口时附加参数?我在同一个子上下文中创建一个新的托管对象,并希望将这个对象发送到一个新的窗口。...image-20221022135907441为 Stepper 添加快捷键Q:我们如何为 SwiftUI 的 Stepper( 在 MacOS 上 )添加增量和减量操作的快捷键?

    15.7K20

    为什么SwiftUI修饰符顺序很重要?

    我们将在下一章中查看为什么会发生这种情况,但是首先,我想看看这种行为的实际含义。...如您所见,我们使用ModifiedContent类型堆叠——每个视图都需要一个视图进行转换以及要进行的实际更改,而不是直接修改视图。 这意味着修饰符的顺序很重要。...如果您之后再扩展Frame,它将不会神奇地重绘已经应用了的背景。 使用修饰符的一个重要副作用是,我们可以多次应用相同的效果:每个修饰符都会简单地添加到以前的内容中。...例如,SwiftUI为我们提供了padding()修饰符,该修饰符在视图周围添加了一些空间,从而不会将其推到其他视图或屏幕边缘。...如果我们应用填充,然后应用背景色,然后应用更多填充和不同的背景色,则可以为视图提供多个边框,如下所示: Text("Hello World") .padding() .background

    2.9K10

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

    将你的应用扩展到沉浸式空间 从熟悉的基于窗口的体验开始,向人们介绍您的内容。从那里,添加特定于visionOS的SwiftUI场景类型,如卷和空间。...在visionOS中,您可以在同一个场景中包含2D和3D视图,并且可以将这些视图呈现在窗口中或作为人的周围环境的一部分。...你也可以添加一个沉浸式场景,将你的内容放置在人物的周围环境中。 当你想要创建3D资产或场景从你的应用程序中显示时,包括一个现实作曲家专业项目文件。...将指针移动到窗口栏旁边的圆圈上,显示窗口的关闭按钮。将光标移动到窗口的一个角落,以将窗口栏变为调整大小控件。 tips:应用程序不能控制窗口在空间中的位置。...系统将每个窗口放置在初始位置,并根据与应用程序的进一步交互更新该位置。 将3D内容添加到应用程序中 为您的visionOS应用程序添加深度和维度,并发现如何将您的应用程序内容融入人的周围环境。

    3K40

    变暗的 Liquid Glass 和消失的 Apple Intelligence | 肘子的 Swift 周报 #093

    如何在 macOS 上用 SwiftUI 展示独立窗口 (Presenting Secondary Windows on macOS with SwiftUI)[17] 在过去的两年中,SwiftUI...大幅增强了其在 macOS 上的表现,添加了丰富的专属 API。...在本文中,Gabriel Theodoropoulos[18]着重介绍了如何使用 Window scene(而非 WindowGroup)在 macOS 上创建和管理辅助窗口。...文章详细讲解了窗口的创建、配置以及程序化的打开和关闭方法。当我看到文章提到的大量以 window开头的视图修饰器,才明显地感受到,不知不觉间,SwiftUI 已经在 macOS 上成长了很多。...macOS 上用 SwiftUI 展示独立窗口 (Presenting Secondary Windows on macOS with SwiftUI): https://l.fatbobman.com

    25200

    打造可适配多平台的 SwiftUI 应用

    ,除了 iOS 中出现的两种窗口状态外,我们还添加了 macOS 枚举项。...例如,在准备开始适配“电影猎手”的 macOS 版本时(已完成 iPad 版本的适配),当添加好 macOS 的 destination 并进行编译后,你会发现 Xcode 出现了不少类似下面这种错误:...由于 iPhone 只支持单窗口模式,通常我们不会太注意它的存在,但在 iPadOS 以及 macOS 这些支持多窗口的系统中,则代表着,每次创建一个新窗口(在 macOS 中,通过菜单中的新建来创建新窗口...通过点击任意窗口中任意 Tab 中的 “Hit Me” 按钮来增加点击次数。点击次数显示在窗口的上方。...图片这是因为,在 macOS 中,使用 Settings 来声明 Settings 窗口同样是创建了一个新的场景,会创建一棵独立的视图树。

    4.2K80

    Chrome 会成为 OpenAI 的下一个目标?| 肘子的 Swift 周报 #081

    本文将探索如何在数据持久化的约束下,通过巧妙的类型封装和转换,构建兼具类型安全、语义明确与高效性能的数据模型。...用 SwiftUI 自定义 macOS App 的 About 窗口[8] 随着 SwiftUI 在 macOS 上能力的增强,许多专为该平台设计的视图修饰器被引入。...本文中,Natalia Panferova[9]详细介绍了如何使用 SwiftUI 构建一个完全自定义的“关于”窗口,并展示了如何应用新特性,如调整工具栏、启用拖动、设置半透明背景、控制窗口按钮、限制窗口大小和关闭位置复原...通过这些步骤,开发者可以全面掌控基于 SwiftUI 的 macOS 窗口外观与行为,使其更好融入应用整体设计。...自定义 macOS App 的 About 窗口 (Create a Fully Custom About Window for a Mac App in SwiftUI): https://l.fatbobman.com

    44700

    visionOS开发之入门介绍

    掌握 SwiftUI。 熟悉 RealityKit。 熟悉 ARKit。 熟悉 Accessibility。 硬件环境:Apple Silicon Mac。 系统环境:macOS 13.5 及以上。...空间计算 Apple Vision Pro 提供了无限的空间“画布”,在画布中用户可以与 App 进行交互,同时与周围环境保持联系,也可以完全沉浸在 App 营造的虚拟空间世界中。...这种体验得益于 visionOS 中的空间计算功能。在空间计算的加持下,visionOS App 提供了 3 种不同的形态:窗口(Windows)、空间容器(Volume)与空间(Space)。...Window 可以在 visionOS App 中创建一个或多个类似 macOS App 的 2D 窗口,大小可以调整。...} .padding() } } Volume 空间容器形态,与 Window 的区别是可以添加深度,即以 3D 的形态展示,大小固定。

    56710

    Xcode 26 beta 4,要崩我们一起崩 | 肘子的 Swift 周报 #096

    开发者不得不在代码中添加一些并不必要的 Sendable、@MainActor等声明,只为了满足编译器的要求。...近期推荐 SwiftUI 愿景 (A SwiftUI Wish List)[5] 前 Safari 工程师 James Savage[6],曾深度参与 SwiftUI、App Clips 与多窗口系统等项目...在本文中,Artur 演示了如何在 Xcode 中创建 command-line 工程,添加 .s 汇编文件,并将其作为程序入口进行编译,最终构建一个能在终端输出 “Hello, Assembly!”...作者通过依赖注入库选择、导航框架、数据存储策略、分析 SDK 集成、构建系统和应用模块化等 6 个具体案例,详细阐述了如何在移动开发中做出高质量、高速度的技术决策。...,不仅体现在位置变化上,还引入了全新的交互逻辑(如 TabView 中的搜索标签)和 Liquid Glass 设计风格。

    43900

    打造可适配多平台的 SwiftUI 应用

    } 在这个枚举类型中,除了 iOS 中出现的两种窗口状态外,我们还添加了 macOS 枚举项。...我们创建 deviceStatus 的目的是用来观察当前应用的窗口状态,故此必须应用于最宽处。 在 SwiftUI 中,除了环境值外,另一个具备较多平台“限制”的部分就是视图的 Modifier。...例如,在准备开始适配“电影猎手”的 macOS 版本时(已完成 iPad 版本的适配),当添加好 macOS 的 destination 并进行编译后,你会发现 Xcode 出现了不少类似下面这种错误:...由于 iPhone 只支持单窗口模式,通常我们不会太注意它的存在,但在 iPadOS 以及 macOS 这些支持多窗口的系统中,则代表着,每次创建一个新窗口(在 macOS 中,通过菜单中的新建来创建新窗口...通过点击任意窗口中任意 Tab 中的 “Hit Me” 按钮来增加点击次数。点击次数显示在窗口的上方。

    3.1K10

    Adobe Photoshop软件,通过内容识别填充从照片中移去对象

    在选区内单击鼠标右键,然后选择“内容识别填充…” 选择“编辑”>“内容识别填充...” 3.调整选区 轻松扩展对象周围的选区边缘,方法是从左侧工具栏中选择“套索”,然后在顶部的“选项”栏中单击“展开...4.当您对填充结果满意时,单击“确定” 使用工具来微调取样和填充区域 取样画笔工具 在文档窗口中使用“取样画笔工具”绘画,以添加或删除用于填充选区的取样图像区域。...要在添加和减去模式之间切换,请在使用取样画笔工具轻刷的同时按住 Alt (Windows)/Option (MacOS) 键。...要增加或减小取样画笔大小,请使用“工具选项”栏中的大小选项或使用左/右括号键。 选区优化工具 使用套索工具或多边形套索工具更改或修改文档窗口中的原始选区(填充区域)。...2.要添加到现有选区、从现有选区减去或与现有选区交叉,请单击选项栏中对应的按钮。 3.执行以下任一操作: 拖动以绘制手绘的选区边界。

    6.4K00

    Arc、Dia、TCA 与 SwiftUI | 肘子的 Swift 周报 #086

    从技术角度来看,Arc 的最低系统要求是 macOS Ventura。在这样一个大型项目中选择 SwiftUI 确实令人好奇。...毕竟 SwiftUI 直到最近两个版本才在 macOS 平台有较明显的进步,且这些进步主要集中在 API 的丰富程度上,而性能表现仍存在明显短板。...客观而言,SwiftUI 与 AppKit 在 macOS 上的性能差距,要比 SwiftUI 与 UIKit 在 iOS 上的差距更为明显。...你将看到它如何用于锁定类行为(与 class的可重写性对比)、为枚举添加共享配置、在协议中定义类型级别的契约、实现一次性加载和类型缓存、在单元测试中复用测试数据,以及通过静态常量替代“魔法字符串”来增强自动补全与代码安全性...工具 SkyLightWindow – 让你的视图一键置顶[22] 由 Lakr[23]开发的 SkyLightWindow是一款 macOS 框架,可将视图显示在系统所有窗口之上,甚至覆盖全屏应用、浮动窗口甚至锁屏界面

    39310

    SwiftUI 4.0 的全新导航系统

    SwiftUI 4.0( iOS 16+ 、macOS 13+ )对导航系统作出了重大改变,提供了以视图堆栈为管理对象的新 API ,让开发者可以轻松实现编程式导航。本文将对新的导航系统作以介绍。...,一分为二的方式将让布局表达更加清晰,同时也会强迫开发者为 SwiftUI 应用对 iPadOS 和 macOS 做更多的适配。...中为 Detail 栏添加的 Toolbar 按钮进行合并。...SwiftUI 4.0 中,将 toolbar 的认定范围扩大到了 TabView 。...相当一部分开发者由于版本适配的原因并不会使用新的 API ,因此,每个人都需要认真考虑如下问题: 如何从新 API 中获得灵感 如何在老版本中运用编程式导航思想 如何让新老版本的程序都能享受系统提供的便利

    12.2K62
    领券