问题标签 [swiftui-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2726 浏览

xcode - SwiftUI:listRowInsets 未按预期工作

listRowInsets(_:)使用List()and时没有按预期工作List(Data,id)。在下面的示例 1中,零插入完美地工作,而在示例 2中它什么也不做。


示例 1:

结果:

示例 1


示例 2

结果:

示例 2

0 投票
1 回答
55 浏览

swift - 如何仅使用文本字段使按钮可点击到另一个视图控制器

我有这种情况,如果用户单击按钮,则会弹出另一个视图控制器,其中仅包含一个 textView,用户可以在其中写一些东西。

0 投票
1 回答
328 浏览

swiftui - 为什么 SwiftUI ObservedObject 不能在列表行中工作?

我有一个问题,即主窗格列表视图行在 iPad 中没有正确更新。出于描述目的,我已将代码缩减为

iPad 左侧窗格显示汽车名称列表(CoreData 托管对象)。出于测试目的,我在 Text(“List car name...”) 中显示了两次名称,然后在 CarRowView 中再次显示了名称。CarRowView 有 car: Car 声明为 ObservedObject。我可以点击一行,进入详细视图,我可以在其中更改汽车名称。当我这样做时,列表会更新为 Text(“List car name...”) 显示新名称,但 CarRowView 不会更改。因此,更改详细信息窗格中的“汽车”,立即显示在列表中(在 Text("List car name..") 中),但即使该汽车对象被发送到 CarRowView,它是一个 ObservedObject,CarRowView显示不变。该应用程序使用 CloudKit,在我进行更改后,新名称在运行相同代码的 iPhone(在 CarRowView 中)上显示正常。

0 投票
1 回答
1022 浏览

swift - 如何在 SwiftUI 中修改列表数据

当用户点击该项目时,我想更改与列表中的项目关联的对象的值,并且我收到下一个错误“无法分配给属性:'学生'是'让'常量”。我该如何防止这种情况发生?

这是我的代码:

0 投票
3 回答
269 浏览

xcode - 如何从 ForEach 列表中的项目访问值

如何访问使用 ForEach 制作的列表中特定项目的值?如您所见,我正在尝试这样的事情(以及许多其他选项):

文本(项目 [2].onOff ?“开”:“关”)

我想检查第二个列表项的切换值(例如)并更新屏幕上的文本,说明它是打开还是关闭。

而且我知道这与@Binding 有关,我正在搜索这方面的示例并尝试了一些事情,但我无法让它发挥作用。也许这是一个初学者的问题。如果有人可以帮助我,我将不胜感激。

我的内容视图:

和 ListItemView:

0 投票
2 回答
392 浏览

swiftui - 屏幕外元素中的 SwiftUI 列表问题

我整理了一个快速文件夹浏览器来查看子文件夹中的一堆图像。基本上,给定路径,它会查找文件夹并为您提供一个按钮来展开文件夹并显示其中的图像。

下面是我整理的代码。但是,如果List单元格是在屏幕外绘制的,则Button一旦滚动到视图中就不会出现。任何人都可以复制这个吗?我如何解决它?它只是 SwiftUI 中的一个错误吗?

编辑:为清楚起见,这是 macOS Catalyst。

这是使用列表的地方:

这是完整的代码ListImageViewer

0 投票
1 回答
279 浏览

swiftui - ForEach 中的行号,对行项使用另一个视图

假设我有一个包含 ForEach 和编号行的简单列表。像这样:

如果我想将该行提取到另一个视图怎么办:

并在原始列表更改中

成为:

现在如何制作编号行?如何将数字传递给 ExtractedView?因为现在我收到一个错误:使用未解析的标识符“数字”

0 投票
3 回答
135 浏览

swift - 如何在列表中设置限制线

我正在尝试在我的列表中设置一个限制;我希望它只显示 5 行。

这是我的代码:

当我更改List为 时List(0 ..< 5) { _ in,我看到 5 行,但包含数组中的所有元素。

任何建议请

谢谢!

0 投票
1 回答
419 浏览

xcode - 使用列表的 id 在 ForEach 列表中是否可以使用 @Binding?

在 ParentView 中使用 @State 和在 ChildView 中使用 @Binding,我们可以在打印视图和子视图中的 2 个变量的值之间建立连接。使用这样的代码:

在 ParentView 中使用 @State 和 valueFromParent 在 ChildView 中使用 @Binding。这样,这两个变量现在是相关的,改变一个变量会改变另一个变量。

是否可以使用行的 ID 号在 ForEach 循环中的两个视图之间进行此绑定?像这样的东西:

我知道另一种方法 - 创建一个项目数组以传递给具有数组内 ID 的列表:

编辑:但我希望避免使用固定项目列表的上述数组。

我想使用这样的 ForEach 循环创建一个简单的原型:ForEach((1...15), id: .self)。问题是我不知道如何从列表中的特定行访问 var 的值。

0 投票
1 回答
1388 浏览

ios - SwiftUI - 使用 Toggle 隐藏列表项

我找到了几乎满足我需求的完美代码。但是有一个问题:

我想在每一行中使用切换而不是按钮。

@kontiki 在此处发布的原始代码:SwiftUI hide list item from list item view

而不是按钮,我尝试使用这样的切换:

我不明白按钮里面有这个 if 语句。我也尝试在按钮之外使用这个 let idx 声明,以便更容易使用切换(因为我不知道如何进行如此复杂的切换),但这也失败了。