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

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

在 SwiftUI 4.0 中,contextMenu 的功能获得了不小的提高。例如一个上下文菜单中可以有多个选项、支持 primaryAction、以及可定制预览视图。...只有将这些变量重构到视图模型中去这一种方式?A:如果在同一个视图中,有多个相互关联的 @State 属性,将他们提取到一个结构中或许是好的选择。...阅读 SwiftUI 的动画机制[8] 一文,了解更多有关动画的内容。自适应高度 SheetQ:如何在 iOS16 中呈现与动态内容高度相匹配的 Sheet?...对于非惰性视图(如 LazyVStack ),一旦 hosting controller 的视图被初始化,onAppear 将被调用。...跨视图层次共享Q:在数据来自 API 响应的情况下,在多个视图之间共享数据的最佳方式是什么?

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

    SwiftUI 布局 —— 对齐

    在 SwiftUI 中,对齐是指在布局容器中,将多个视图按照对齐指南( Alignment Guide )进行对齐。...对齐指南( alignment guide)用来标识视图间进行对齐的依据,它具备如下特点: 对齐指南不仅可以标识点,还可以标识线 在 SwiftUI 中,分别用 HorizontalAlignment...在 SwiftUI 中,系统预置对齐指南都提供了对不同布局方向的支持。...alignmentGuide 修饰器 在 SwiftUI 中,开发者可以使用 alignmentGuide 修饰器来修改视图某个对齐指南的值( 为对齐指南设定显式值,有关显式值见下文)。...总之,为 VStack、HStack、ZStack 这类可包含多个子视图的官方布局容器设置 alignment 的含义就只有一种 —— 在特定维度上,将所有的子视图按照给定的对齐指南进行对齐摆放。

    6.4K20

    鸿蒙应用开发-初见:ArkUI

    想了解更多Flutter的布局原理可以查看 深入理解 Flutter 布局约束 SwiftUI中的View布局原理参考SwiftUI中的布局原理可以参考下图。...想了解细节,可参考 SwiftUI 中布局的工作原理小结声明式布局想要布局子视图都会经历由上到下的一个过程,只有知道了子视图的大小之后才能根据对齐方式将子视图放置在准确的位置。...声明式布局几乎都是下面这个套路父视图给子视图一个布局约束(作为Root的根视图默认是充满屏幕的,它给子视图的约束就是屏幕大小)子视图渲染并将自身大小返回给父视图父视图根据子视图的大小和设定的对齐方式计算要放置的位置子视图的布局也遵循以上三步进行递归...:子元素在垂直方向居中对齐VerticalAlign.Bottom:子元素在垂直方向底部对齐层叠布局(Stack)层叠布局主要用于实现基于Z轴的布局,容器中的子元素(子组件)依次入栈,后一个子元素覆盖前一个子元素...ItemAlign.Start:交叉轴方向首部对齐 ItemAlign.Center:交叉轴方向居中对齐 ItemAlign.End:交叉轴方向底部对齐 子组件通过 alignSelf 设置在父容器交叉轴的对齐格式

    27810

    百行代码变十行,苹果SwiftUI可视化编程让开发者惊呼完美

    这种声明式的方式甚至允许使用复杂的功能,如动画(animation)。只需要几行代码,即可添加动画在任何控件上,并且可以使用易于调用的特效。...只需一次就能定义布局 开发者只需定义视图(view)中内容和布局,SwiftUI 懂得什么时候需要改变,并可以随时更新(视图)以匹配设计。 ?...单机打开检查器(inspector)以选择字体、颜色、对齐方式和其它设计选项,我们也可以通过光标轻松重新排列控件。...预览:现在,我们可以创建任何 SwiftUI 视图的一个或多个预览,从而得到样本数据,并配置几乎用户能看到的所有内容,例如大字体、定位或「暗黑模式」等。...Swift 包管理器(Swift Package Manager),是一个跨平台的构建、运行、测试和打包你的 Swift 代码的工具,现已在 Github 开源。

    4.1K10

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

    前言 苹果在 WWWDC 2022 上推出了 SwiftUI 图表,这使得在 SwiftUI 视图中创建图表变得异常简单。图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。...系列文章 如何在 SwiftUI 中创建条形图 SwiftUI 中的水平条形图 在 iOS16 中用 SwiftUI 图表定制一个线图 在 Swift 图表中使用 Foudation 库中的测量类型 简单折线图...Charts 中创建一个包含两个系列步数数据的折线图 第一次尝试在 SwiftUI Charts 中创建一个包含两个系列步数数据的折线图 显示步数系列 在折线图中显示多个基于工作日的步数系列 最初尝试在折线图中显示多组数据的问题是...有必要只用工作日作为X轴的数值,这样所有的周日都在同一个X坐标上绘制。 在StepCount中添加另一个计算属性,以便以字符串格式返回工作日的短日。...图表中带有两个系列的步数数据的折线图 SwiftUI 图表中带有两个系列的步数数据的折线图 结论 在 SwiftUI Charts 中还有很多东西可以探索。

    3.7K20

    SwiftUI Overlay Container 2 —— 可定制、高效、便捷的视图管理器

    在 SwiftUI 中,描述视图已经变得十分的容易,因此我们完全可以将上述场景中的显示逻辑提炼出来,创建出一个可以覆盖更多使用场景的库,帮助开发者组织视图的显示风格和交互逻辑。...功能与特性 支持多个容器 单一容器内支持多个视图 可在 SwiftUI 视图代码内或视图代码外向任意指定的容器推送视图 可以动态修改容器的配置(除了队列类型) 容器内的视图有多种排列方式 有多种队列类型以指导容器如何显示视图...容器显示类型( Display type ) stacking 当容器内同时显示多个视图时,视图沿 Z 轴排列。其表现同 ZStack 类似。...stacking horizontal 当容器内同时显示多个视图时,视图沿 X 轴排列。其表现同 HStack 类似。...horizontal vertical 当容器内同时显示多个视图时,视图沿 Y 轴排列。其表现与 VStack 类似。

    2.1K20

    SwiftUI中的水平条形图

    SwiftUI中的水平条形图 水平条形图以矩形条的形式呈现数据类别,其宽度与它们所代表的数值成正比。本文展示了如何在垂直条形图的基础上创建一个水平柱状图。 水平条形图不是简单的垂直条形图的旋转。...在Numbers 等应用程序中,水平条形图被定义为独立的图表类型,而不是垂直条形图。除了条形差异外,x轴和y轴的格式也需要不同。...我们创建了一个YaxisHView视图,用于在水平条形图上显示Y轴和条形图中的数据类别。...更新X轴 同样,创建了一个XaxisHView视图来显示水平条形图的X轴,并使用与垂直条形图的Y轴类似的代码来布置刻度线和刻度值。...当我们深入到轴等组件时,可以看到两个图表中的轴线都是一样的,但是它们的标签和定位在x和y之间是换位的。这可能是将这些组件分解成更小的SwiftUI视图并通过组合来重用的原因。

    4.8K20

    SwiftUI Release 引入的辅助焦点管理

    这个新功能使得在SwiftUI中处理辅助技术(如 VoiceOver 和 Switch Control)的焦点状态变得更加轻松。...本文将介绍如何使用 @FocusState 属性包装器来在SwiftUI中管理和移动辅助焦点。...通常,屏幕上有多个元素,您可能希望在它们之间移动焦点。为了支持这种情况,SwiftUI 提供了一种通过枚举定义可聚焦字段并在它们之间切换的方法。...总结在这篇文章中,我们深入探讨了 SwiftUI Release 引入的辅助焦点管理功能,使得处理辅助技术(如 VoiceOver 和 Switch Control)的焦点状态变得更加轻松。...通过详细的示例代码,我们演示了如何在 SwiftUI 中使用 @FocusState,以及如何通过 focused 视图修饰符将焦点状态绑定到特定的视图。

    12210

    掌握 ViewThatFits

    在 iOS 16 中,SwiftUI 增加了一个新的自适应布局容器 ViewThatFits。正如其名称所示,它的作用是在给定的多个视图中找出最合适的视图并使用。...如果在所有设置的受限轴上,理想尺寸都小于等于建议尺寸,那么选择该子视图,并停止对后续子视图进行判断。 如果所有的子视图都不满足条件,则选择闭包中的最后一个子视图。...在 SwiftUI 中,我们可以通过 fixedSize 来强制一个视图以理想尺寸进行呈现: struct IdealSizeDemo: View { var body: some View {...这种对理想尺寸在单个轴向上的限制与 ViewThatFits 构造方法中的受限轴设置完全对应。通过设置,我们可以让 ViewThatFits 只在特定轴向上对子视图的理想尺寸进行判断。...在 SwiftUI 中,我们可以通过 frame 来修改视图在理想状态下的呈现。

    24010

    SwiftUI TextField进阶——格式与校验

    SwiftUI修饰方法) 以上原则,在SheetKit——SwiftUI模态视图扩展库[3]和用NavigationViewKit增强SwiftUI的导航视图[4]中均有体现。...如何在TextField中实现格式化显示 现有格式化方法 在SwiftUI 3.0中,TextField新增了使用新老两种Formatter的构造方法。...如何在TextField中屏蔽无效字符 现有屏蔽字符方法 在SwiftUI中,可以通过设置仅使用特定的键盘类型来实现一定程度上的录入限制。...如何在TextField中检查内容是否符合指定条件 相较上述两个目标,在SwiftUI中检查TextField内容是否符合指定条件是相当方便的。...不利于判断用户是否录入新的信息(更多的信息可参阅如何在SwiftUI中创建一个实时响应的Form[10])。方案二中允许不提供初始值,支持可选值。

    8.2K20

    用 SwiftUI 的方式进行布局

    在初始状态时( show == false ),视图一( 红色视图 )的底部与屏幕底部对齐,当 show == true 时,视图二( 绿色视图 )的底部与屏幕底部对齐。...padding-offset 二、AlignmentGuide 在 SwiftUI 中,开发者可以使用 alignmentGuide 修饰器来修改视图某个对齐指南的值( 设置显式值 )。...我们在第一个 overlay 中绘制了一个与视图二尺寸一致的视图( 不显示 ),并将其底边与屏幕底边对齐。...五、LayoutPriority 在 SwiftUI 中,设置视图优先级( 使用 layoutPriority )是一个好用但并不常用的功能。...视图二同理 六、再战 AlignmentGuide 在上面使用 AlignmentGuide 的例子中,我们通过 GeometryReader 获取了视图二的高度信息,并通过设置显式对齐指南来完成了移动

    3.3K00

    如何在 SwiftUI 中创建条形图

    系列文章 如何在 SwiftUI 中创建条形图 SwiftUI 中的水平条形图 在 iOS 16 中用 SwiftUI Charts 创建一个折线图 在 iOS16 中用 SwiftUI 图表定制一个线图...在 Swift 图表中使用 Foudation 库中的测量类型 开始图表布局 SwiftUI 对探索不同布局和预览实时视图结果是很友好的。...图标被设置为固定大小,视图被嵌入到 ScrollView 中,以便在设备旋转时滚动。...SwiftUI 是一个很好的平台,用于创建视图和快速重构独立的子视图。在 SwiftUI 中构建条形图需要做一些工作,随着使用数据来试用条形图,可以确定更多的定制化。...在这篇文章中,我们创建了一个简单的条形图,有数值,下面有标签,还有图表的标题,下一步就是分离出 x 轴和 y 轴。 - EOF -

    5.2K10

    不止于 X:Swift 社区拥抱 Mastodon 和 Bluesky|肘子的 Swift 周报 #072

    如果无法说服社交圈中相当比例的人一同迁移到新平台,用户就可能错失重要的交流机会。这导致平台迁移并未对 X 造成很大影响,反而使许多用户不得不在多个平台间分散精力,维持内容的同步发布和互动。...SwiftUI 中该测试什么?不该测试什么?...(What to Test (and What Not to Test) in SwiftUI)[18] SwiftUI 的声明式特性鼓励开发者将主要逻辑和状态抽离到 ViewModel 进行测试,但这并不意味着视图行为本身不需要测试...Jon Reid[19]在这篇文章中探讨了 SwiftUI 视图测试的边界,包括:测试行为,而非外观;测试 UI 传递的信息;测试包含逻辑判断的 UI 组件。...尽管 SwiftUI 没有提供官方的视图单元测试工具,但开发者可以借助ViewInspector[20]直接检查 SwiftUI 视图的内部状态,或使用Snapshot Testing[21]进行视觉回归测试

    5100

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

    创建悬浮操作按钮如何 SwiftUI 创建一个类似 Twitter App 中的悬浮按钮。实现悬浮操作按钮可能有很多方法,下面是我要实现按钮的一些简单需求,如下:悬浮按钮应该出现在屏幕的主要内容前面。...以下是一个简单的列表视图,嵌套在导航视图和选项卡视图中,列表中显示了 item 加索引内容。...将一个按钮放在内容视图上。这将在列表视图上添加一个加号图像按钮。示例运行截图如下:悬浮按钮位于屏幕的右下角接着,是需要实现需求中的第二步,使按钮与内容视图对齐到右下角。...(Button)与较大的视图(List)底部右对齐。...总结在本文中,我们学习了如何在 SwiftUI 中创建一个悬浮操作按钮,它是 Android 和 Material Design 中常用的 UI 元素。通过逐步实现悬浮按钮的各个特性来完成这个过程。

    18832

    用 SwiftUI 的方式进行布局

    大致效果如下: 图片 解决方案 对于上面的需求,相信不少读者都会在第一时间想出多个解决方案。下文中,我们将用 SwiftUI 布局系统提供的多种手段来实现该要求。...图片 二、AlignmentGuide 在 SwiftUI 中,开发者可以使用 alignmentGuide 修饰器来修改视图某个对齐指南的值( 设置显式值 )。...我们在第一个 overlay 中绘制了一个与视图二尺寸一致的视图( 不显示 ),并将其底边与屏幕底边对齐。...五、LayoutPriority 在 SwiftUI 中,设置视图优先级( 使用 layoutPriority )是一个好用但并不常用的功能。...视图二同理 六、再战 AlignmentGuide 在上面使用 AlignmentGuide 的例子中,我们通过 GeometryReader 获取了视图二的高度信息,并通过设置显式对齐指南来完成了移动

    4.8K80

    在 SwiftUI 中用 Text 实现图文混排

    在下面的代码中,尽管我们通过布局容器视图将 Text 横向排列到一起,但 SwiftUI 仍会将它们视作多个 Text 视图( 一组 ),对每个 Text 分别进行换行操作:struct TempView....font(.title)image-20220814160547051有关 baseline 对齐线方面的内容,请阅读 SwiftUI 布局 —— 对齐[6] 一文再次强调,我们只能使用不会改变 Text...,通过 SwiftUI 视图创建标签根据标签视图的尺寸创建空白占位图片在 Text 中添加占位图片,进行混排使用 overlay 将标签视图定位在 leadingTop 位置,覆盖于占位图片上TitleWithOverlay...微调标签视图的位置,使其与 Text 的文字对齐。...SwiftUI 4 提供的 ImageRenderer 完成视图至图片的转换,因此仅支持 iOS 16+在低版本的 SwiftUI 中,可以通过用 UIHostingController 包裹视图的方式

    4.5K30

    掌握 SwiftUI 中的 ScrollView:滚动几何

    SwiftUI 是一个强大的框架,它简化了在苹果平台上构建用户界面的过程。SwiftUI 中的一个基本组件是 ScrollView,它允许用户通过滚动导航内容。...在此示例中,我们使用 CGFloat 来跟踪内容偏移的 Y 轴。转换闭包:从 ScrollGeometry 实例中提取所需信息。...高级滚动几何跟踪ScrollGeometry 提供了许多有价值的属性,如内容偏移、边界、容器大小、可见矩形、内容插入和内容大小。开发者可以提取单个属性或组合多个属性以获得全面的见解。...功能解释ContentView: 展示基本的滚动偏移追踪功能,通过 onScrollGeometryChange 视图修饰符追踪 Y 轴的内容偏移。...总结今天,我们探讨了 SwiftUI 中的新 ScrollGeometry 类型和 onScrollGeometryChange 视图修饰符。

    17811
    领券