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

SwiftUI:如何在列表中居中放置矩形?

在SwiftUI中,要在列表中居中放置矩形,可以使用HStackSpacer来实现。

首先,创建一个List视图,并在其中使用ForEach循环来遍历要显示的数据项。在ForEach循环中,使用HStack来包裹矩形和Spacer

下面是一个示例代码:

代码语言:txt
复制
import SwiftUI

struct ContentView: View {
    let data = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"]

    var body: some View {
        List {
            ForEach(data, id: \.self) { item in
                HStack {
                    Spacer()
                    Rectangle()
                        .frame(width: 100, height: 50)
                        .foregroundColor(.blue)
                    Spacer()
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

在这个示例中,我们创建了一个包含5个数据项的列表。对于每个数据项,我们使用HStack将矩形和两个Spacer包裹起来。Spacer会将矩形推到列表项的中间位置。

这样,矩形就会在列表中居中放置。

关于SwiftUI的更多信息和示例代码,你可以参考腾讯云的官方文档:SwiftUI - 腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

欢迎大家在 Discord 频道[2] 中进行更多地交流将某个视图在父视图中居中显示是一个常见的需求,即使对于 SwiftUI 的初学者来说这也并非难事。...需求实现下图中展示的样式:在彩色矩形视图中居中显示单行 Textimage-20220829142518962填充物Spacer最常见也是最容易想到的解决方案。...因此,当我们将合成后的 hello world 视图放置在 VStack 顶部时( 通过 Spacer ),矩形的 background 会连同顶部的安全区域一并渲染。...请阅读 SwiftUI 專欄 #4 Color 不只是顏色[3] ,掌握有关 Color 更多的内容对齐指南上节,我们通过填充物让 Text 实现了左右居中。...上下居中则是利用了 HStack 对齐指南的默认设定( .center )实现的。本节,我们将完全通过对齐指南来实现居中操作。

6.6K40

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

SwiftUI 布局 —— 尺寸( 上 )[8] 一文,对建议尺寸的几种模式都进行了介绍。如何减少主线程的负担Q:如何避免所有操作都被放置在主线上?...Swiftcord[12] 的代码展示了如何在 SwiftUI 下实现倒置列表。阅读 优化在 SwiftUI List 显示大数据集的响应效率[13] 一文,了解苹果工程师推荐的方法。...在 SwiftUI 4 ,可以使用 .scrollContentBackground(.hidden) 隐藏列表的默认背景searchableQ:是否有办法在.searchable() 修饰器以编程方式设置搜索字段的焦点...macOS APIQ:对于运行 Monterey 的 Mac,能否如何在 SwiftUI 实现下面需求的建议:打开一个窗口在该窗口中初始化数据找到所有打开的窗口确定一个窗口是否打开从不在该窗口的视图中关闭一个窗口...其中 2 个是自定义形状( 基本上是圆角矩形,只有两个角是圆的 ),其中一个是矩形。编译器抛出一个错误,说它花了太多时间来检查视图的类型。

14.7K30

掌握 SwiftUI 的 Safe Area

在 UIKit ,开发者需要利用 safeAreaInsets 或 safeAreaLayoutGuide ,才能确保将视图放置在界面的可见部分。 SwiftUI 对上述过程进行了彻底的简化。...SwiftUI 同时提供了一些方法和工具让开发者对安全区域有所控制。 本文将探讨如何在 SwiftUI 获取 SafeAreaInsets、将视图绘制到安全区域之外、修改视图的安全区域等内容。...在 SwiftUI ,开发者通常只有在需要获取 StatusBar + NavBar 的高度或 HomeIndeicator + TabBar 的高度时才会使用到 safeAreaInsets 。...safeAreaInsetList2 遗憾的是,在 iOS 15 之前,SwiftUI 并没有提供调整视图安全区的手段,如果我们想通过 SwiftUI 的手段创建一个自定义 Tabbar 时,列表中最后的内容将被...尽管使用 safeAreaInset 为列表在底部添加状态栏或自定义 TabBar 非常方便,但如果你的列表中使用了 TextField,情况将变得很麻烦。

7.5K31

SwiftUI的水平条形图

SwiftUI的水平条形图 水平条形图以矩形条的形式呈现数据类别,其宽度与它们所代表的数值成正比。本文展示了如何在垂直条形图的基础上创建一个水平柱状图。 水平条形图不是简单的垂直条形图的旋转。...Bar Chart with multiple data sets in SwiftUI SwiftUI 的水平条形图 将条形图转换为水平 水平条形图不仅仅是在垂直条形图上的配置,有一些元素是可以重复使用的...} } } } } } ChartAreaHView与ChartAreaView几乎相同,只是Bars被放置在一个垂直的堆栈...矩形条的宽度与数据的值成正比。...当我们深入到轴等组件时,可以看到两个图表的轴线都是一样的,但是它们的标签和定位在x和y之间是换位的。这可能是将这些组件分解成更小的SwiftUI视图并通过组合来重用的原因。

4.7K20

GeometryReader :好东西还是坏东西?

GeometryReader 自 SwiftUI 诞生之初就存在,它在许多场景扮演着重要的角色。然而,从一开始就有开发者对其持负面态度,认为应尽量避免使用。...请阅读 用 SwiftUI 的方式进行布局[9] 和 在 SwiftUI 实现视图居中的若干种方法[10] 两篇文章,以了解面对同一个需求,SwiftUI 有多种布局手段。...里子和面子:不同的尺寸数据 在 SwiftUI ,有一些 modifier 是在布局之后,在渲染层面对视图进行的调整。...在 SwiftUI 布局 —— 尺寸( 下 )[11] 一文,我们探讨过有关尺寸的“里子和面子”的问题。...https://www.fatbobman.com/posts/layout-in-SwiftUI-way/ [10] 在 SwiftUI 实现视图居中的若干种方法: https://www.fatbobman.com

45070

SwiftUI geometryGroup() 指南:从原理到实践

默认情况下,SwiftUI 视图会将位置和大小的变化沿视图层级向下传递,以至于只有绘制内容的视图(称为叶子视图)将当前动画应用到它们的框架矩形上。...当 SwiftUI 在 overlay 布局黄色圆形时(topLeading),此时红色矩形的尺寸(尽管仍在以动画的形式逐渐扩大)已经是调整后的 300 x 300。...SwiftUI 将黄色圆形放置在放大后的红色矩形的 topLeading 位置。...上述每个过程的执行都严格且完美地遵循了 SwiftUI 的布局和动画规则。唯一让我们不满意的是,在创建黄色圆形时(布局它的位置时),它被放置在放大后的红色矩形的 topLeading 位置上。...这是因为在 SwiftUI ,每个可动画视图根据 transaction 的信息自行决定自身的动画行为。

25110

使用SwiftUI创建万花尺

为了完成一些真正意义上的绘图工作,我将带您通过创建一个简单的带SwiftUI的spirograph。...我会解释的,但是如果你不感兴趣的话,跳过这一章是完全可以的——这只是为了好玩,这里没有介绍新的Swift或SwiftUI。 我们的算法有四个输入: 内圈的半径。 外圈的半径。...CGFloat.pi * outerRadius / CGFloat(divisor)) * amount // more code to come } 最后,我们可以通过循环从0到我们的终点来画轮盘赌,并放置在精确的...这是核心算法,但我们要做两个小的改变:我们要分别将绘图矩形的一半宽度或高度添加到X和Y,使其在绘图空间中居中;如果θ为0,即如果这是轮盘绘制的第一个点,我们将我们的路径调用move(to:)而不是addLine...译自 Creating a spirograph with SwiftUI

1.2K10

何在 SwiftUI 创建条形图

系列文章 如何在 SwiftUI 创建条形图 SwiftUI 的水平条形图 在 iOS 16 中用 SwiftUI Charts 创建一个折线图 在 iOS16 中用 SwiftUI 图表定制一个线图...在 Swift 图表中使用 Foudation 库的测量类型 开始图表布局 SwiftUI 对探索不同布局和预览实时视图结果是很友好的。...数据的最大值得到后并传递给每个 BarView。主图表区域保持原来的圆角矩形,并以水平堆叠的方式叠加一系列条形,每个 DataItem 一个。...组合矩形来创建条形图是比较容易的。...SwiftUI 是一个很好的平台,用于创建视图和快速重构独立的子视图。在 SwiftUI 构建条形图需要做一些工作,随着使用数据来试用条形图,可以确定更多的定制化。

5.1K10

【CSS】轮播图案例开发 ( 基本设置 | 子绝父相 | 浏览器水平居中 | 圆角设置 | 绝对定位居中设置 )

取消浏览器或者其它标签的默认的内外边距 */ * { margin: 0; padding: 0; } 取消列表样式 : 主要是 取消列表项前的小圆点 ; /* 取消列表样式...; /* 使用绝对定位 在 相对定位的父容器任意放置元素 */ position: absolute; /* 垂直居中 */ /* 首先 走到父容器高度一般 */ top...: 30px; 代码示例 : /* 并集选择器 将左右按钮相同的样式提取出来进行设置 代码重构 */ .left, .right { /* 使用绝对定位 在 相对定位的父容器任意放置元素.../ 使用圆角矩形设置左右两侧半圆 / 使用圆角矩形设置小圆点 绝对定位水平居中设置 : 执行下面两个步骤 , 可以将 绝对定位 的子元素设置为 水平居中 ; 首先 , 走到父容器宽度的一半 ; 然后...代码重构 */ .left, .right { /* 使用绝对定位 在 相对定位的父容器任意放置元素 */ position: absolute; /* 垂直居中

1.7K10

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

是否有任何建议用来检测列表的行选择,类似于 “NavigationLink”,但不导航到另一个视图(例如,显示 Sheet 或从列表中选择一个选项 )?...阅读 SwiftUI 的动画机制[8] 一文,了解更多有关动画的内容。自适应高度 SheetQ:如何在 iOS16 呈现与动态内容高度相匹配的 Sheet?...详情请阅读 在 SwiftUI 实现视图居中的若干种方法[14] 。NavigationSplitView 的尺寸规则Q:你好!...image-20221022135326560San Francisco 宽度风格Q:如何在 SwiftUI 如何使用 SF 字体家族新增的三种宽度风格( Compressed、Condensed、Expanded.../posts/new_navigator_of_SwiftUI_4/[14] 在 SwiftUI 实现视图居中的若干种方法: https://www.fatbobman.com/posts/centering_the_View_in_SwiftUI

12.2K20

使用 SwiftUI 创建万花尺

为了完成一些真正意义上的绘图工作,我将带您通过创建一个简单的带 SwiftUI 的 spirograph。...我会解释的,但是如果你不感兴趣的话,跳过这一章是完全可以的——这只是为了好玩,这里没有介绍新的 Swift 或 SwiftUI。 我们的算法有四个输入: 内圈的半径。 外圈的半径。...{ let temp = b b = a % b a = temp } return a } 把这个方法添加到Spirograph结构体。...* outerRadius / CGFloat(divisor)) * amount // more code to come } 最后,我们可以通过循环从 0 到我们的终点来画轮盘赌,并放置在精确的...这是核心算法,但我们要做两个小的改变:我们要分别将绘图矩形的一半宽度或高度添加到X和Y,使其在绘图空间中居中;如果 θ 为 0,即如果这是轮盘绘制的第一个点,我们将我们的路径调用move(to:)而不是

65310

First PyQt

sys.argv参数是一个来自命令行的参数列表。Python脚本可以在shell运行。这是我们用来控制我们应用启动的一种方法。...在下面的例子里,我们将展示我们如何在PyQt5显示应用图标。我们也将介绍一些新方法的使用。 #!...QPushButton(string text, QWidget parent = None) text参数是将显示在按钮的内容。parent参数是一个用来放置我们按钮的组件。...self.center()将窗口居中放置的代码在自定义的center()方法 我们获得主窗口的一个矩形特定几何图形。这包含了窗口的框架。...现在我们把矩形的中心设置到屏幕的中间去。矩形的大小并不会改变。 qr.moveCenter(cp) 我们移动了应用窗口的左上方的点到qr矩形的左上方的点,因此居中显示在我们的屏幕上。

1.7K30

SwiftUI 布局协议 - Part 1

简介 今年 SwiftUI 新增最好的功能之一必须是布局协议。它不但让我们参与到布局过程,而且也给了我们一个很好的机会去更好的理解布局在 SwiftUI 的作用。...什么是布局协议 采用布局协议类型的任务,是告诉 SwiftUI 如何放置一组视图,需要多少空间。...在上一个例子,绿色矩形占据了提供的所有空间,但没有一个多余的像素。...然而,这是因为我们没有在 placeSubviews 方法编写任何代码,所有的视图都放置在容器中间。如果你没有明确的放置位置,这就是容器的默认视图。...bounds rect 具有我们在 sizeThatFits 方法要求的尺寸。通常,矩形的原点是(0,0),但是你不应该这样假设,如果我们正在组合布局,这个原点可能会有不同的值,我们将在后面看到。

3.2K10

CorelDRAW 2019 软件应用项目(五)

目录 新建纸张 填充背景颜色 绘图 修剪空心圆 填充渐变颜色,塑造立体效果 如何在交互式填充工具下复制填充?...文案 作品展示 一.新建 A4 大小纸张 将长宽分别改为 210mm 和 297mm,将矩形覆盖整个纸张 二.填充背景颜色 界面右下角,有有系统和钢笔,点击油漆桶后面的色块,在菜单栏中选择第二个纯色填充...选择对页面居中,就可以得到在镇中心的圆,随机填充一种颜色,并且取消描边,复制这个椭圆,在原地粘贴 如果什么都不按进行缩小,会以图形外八点组成矩形的对角线端点进行缩放,八点,在边正中四点,会改变图形的长和宽...如何在交互式填充工具下复制填充?...已经用交互式填充工具填充后的图形,就可以,让你里面选中的小圆,拥有黑箭头点击图形的渐变,互换双方方形色块的位置,体积感觉塑造出来了 四.文案 输入“keep thinking”将它垂直排列,运用水平翻转和垂直翻转放置到画面的左上角和右下角

1.7K10

计算机科学里最大的难题:居中显示

遗憾的是,我们生活在实践。 让我们看一下到底发生了什么。 字 体 字体是罪魁祸首之一。未对齐的文本随处可见。让我们看一些例子。...现在,文本块的边界框看起来像下面这样: 问题在于,它还可以像下面这样: 或这样: 现在,如果你试图通过居中边界框来居中文本会怎样? 虽然矩形实现了完美居中,但文本还是偏了。...为了帮你做出决策,我画了下面这张图: 看看苹果公司怎么费力地将复选标记放入矩形内,以及将矩形放到文本标签旁: 然而他们还是失败了! 没有什么比对齐两个矩形更容易的了。...因此,对于任何需要手动补偿的内容,可以将其放置在一个足够大的矩形,并在其中实现图标视觉效果的平衡: 我们能做些什么:所有人 请一定注意。请务必小心。...糟糕的居中可能毁掉原本不错的 UI: 但恰当的文本对齐可以让你的 UI 美妙歌: 即使这很难。即使没有便捷的工具。即使你不得不搜寻解决方案。

7310

SwiftUI 布局 —— 尺寸( 上 )

SwiftUI 布局过程速览 SwiftUI 的布局就是布局系统通过为视图树上的节点提供必要的信息,最终计算出每个视图( 矩形 )所需的尺寸以及摆放位置的行为。...ZStack 放置在了 152.33, 418.33 处,并为其提供了渲染尺寸( 85.33 x 20.33 ) ZStack 将 Text 放置在了 152.33, 418.33 处,并为其提供了渲染尺寸...这类视图的主要作用有: 突破 ViewBuilder Block 的数量限制 方便为一组视图统一设置 view modifier 有利于代码管理 其他特殊应用, ForEach 可支持动态数量的子视图等...SwiftUI 的尺寸 如上文中所示,在 SwiftUI 的布局过程,在不同的阶段、出于不同的用途,尺寸这一概念是在不断地变化的。...渲染尺寸 在布局的第二阶段,当 SwiftUI 的布局系统调用布局容器( 符合 Layout 协议 )的 placeSubviews 方法时,布局容器会将每个子视图放置在给定的屏幕区域( 尺寸通常与该布局容器的需求尺寸一致

4.6K20

计算机科学里最大的难题:居中显示

遗憾的是,我们生活在实践。 让我们看一下到底发生了什么。 字 体 字体是罪魁祸首之一。未对齐的文本随处可见。让我们看一些例子。...现在,文本块的边界框看起来像下面这样: 问题在于,它还可以像下面这样: 或这样: 现在,如果你试图通过居中边界框来居中文本会怎样? 虽然矩形实现了完美居中,但文本还是偏了。...为了帮你做出决策,我画了下面这张图: 看看苹果公司怎么费力地将复选标记放入矩形内,以及将矩形放到文本标签旁: 然而他们还是失败了! 没有什么比对齐两个矩形更容易的了。...因此,对于任何需要手动补偿的内容,可以将其放置在一个足够大的矩形,并在其中实现图标视觉效果的平衡: 我们能做些什么:所有人 请一定注意。请务必小心。...糟糕的居中可能毁掉原本不错的 UI: 但恰当的文本对齐可以让你的 UI 美妙歌: 即使这很难。即使没有便捷的工具。即使你不得不搜寻解决方案。

8310
领券