问题标签 [swiftui-foreach]

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 投票
1 回答
374 浏览

swiftui - SwiftUI 导航控制器卡顿,每个列表行有两个 Navigationlinks

我正在尝试在重复列表中创建两个 NavigationLink。每个都有一个单独的目的地。在我将对根视图的调用嵌入到 List/ForEach 循环之前,代码一切正常。此时导航变得非常奇怪。

尝试单击任一链接,然后单击顶部的后退指示器。它将转到一个 NavigationLink,然后转到另一个。有时以不同的顺序,有时它会从一个链接自动返回,有时它不会打开第二个详细视图,直到您从第一个详细视图返回。它在 Preview 中以及在您构建和运行应用程序时都执行此操作。

我已将代码提炼为以下最基本的代码。如果您按照 ContentView 中的说明注释 2 行,您将看到正确的行为。

我正在运行 Catalina 10.15.5、xCode 11.6,应用程序目标为 IOS 13.6。

如何修改代码,使其与 List/ForEach 循环一起使用?

0 投票
1 回答
50 浏览

swift - CircleImage 在选择器中选择一个选项并添加到列表后不断改变颜色

我遇到了一个奇怪的问题,当添加具有不同颜色的新项目时,列表中项目的颜色会发生变化,本质上它不会保留其颜色值,而是占用一个新的颜色值。我要做的是显示与用户选择的优先级相对应的颜色。

这是代码:

查看代码

这个gif更清楚地说明了这个问题

(Gif)[https://imgur.com/a/ffzpSft]

0 投票
0 回答
126 浏览

swiftui - 当列表中有两个项目时,foreach中的Swiftui Navigationlink崩溃

我有一个带有 foreach 的视图,当我单击一个项目时,我想在其中进入详细信息视图

当 fetchRequest (梦想)中有一个项目时,这可以正常工作,但是当我有两个或更多项目时,当我单击其中一个时,它们全部“点亮”并且我收到以下错误消息

致命错误:UIKitNavigationBridge:多个活动目的地:文件 SwiftUI,第 0 行 2020-09-10 08:56:21.311643+0200GoalsDream[97124:12329297] 致命错误:UIKitNavigationBridge:多个活动目的地:文件 SwiftUI,第 0 行

作为“整体”的代码是:

0 投票
1 回答
1323 浏览

swiftui - 如何在 SwiftUI 中将删除线()应用于点击的 foreach 文本项?

我正在尝试将删除线应用于 ForEach 循环中的任何点击的文本项目:

是否有一种简单的方法可以使用@State var 来应用条件,以跟踪何时应用删除线()?我在想唯一的方法是将一个属性放入 listObject 来跟踪它是否被击中,然后使用它来将 true/false 应用于删除线()修饰符。但这似乎是意大利面条代码?

0 投票
1 回答
1121 浏览

swift - ForEach 在 swiftui 中的 ViewBuilder 中具有自定义视图数组

我是 iOS Development 的新手。在这里,我尝试使用 foreach 循环获取不同的目标视图

我试过以下

然后我收到此错误无法将“view1”类型的值转换为预期的元素类型“Array.ArrayLiteralElement”(又名“AnyView”)

这里 view1,view2,view3 是自定义视图

0 投票
2 回答
693 浏览

swiftui - SwiftUI:如何将字符串数组解析为文本

我试过关注thisthisthis,但是我在从字符串数组中获取数据时遇到了问题。

我的状态设置为

这只会让我得到数组中的第一个元素

这失败了

这在控制台中有效

我在这里做错了什么?

0 投票
1 回答
74 浏览

swiftui - 在 SwiftUi 中水平组合和打破垂直滚动视图?

有谁知道如何使用 SwiftUi 将 Vertical ScrollView 分解为小的水平 ScrollView:

我有下面的代码,它垂直显示 youtubeResults,因为 ForEach 的每个项目都较小,所以我想将它们按 3 个水平排列,然后下面的 3 个垂直排列直到 forEach 结束。

我希望这样显示结果(带有图像,这只是一个示例):

(贾斯汀·比伯)(德雷克)(奥马里恩)

(曼德拉) (Dj Khaled) (涅槃)

(贾斯汀·贝伯)(王子)(阿黛尔)

我的代码:垂直地一一显示结果

0 投票
3 回答
102 浏览

swiftui - 为什么@Published 更新文本但不更新列表?

我不明白为什么Text更新,但List没有。

我有一个模型,@Published它是一个日期数组。还有一种从日期生成文本的方法。

这是一个简化版本:

我在我的观点中展示了这段文字。这是一个简化版本:

它有效:当用户从视图中的 UI 向 中添加日期时model.selectedDates,摘要文本会正确更新。


现在我想用行列表替换文本。

我改变方法:

并改变观点:

但这不起作用:列表中根本没有文本,当用户将日期添加到model.selectedDates.

我究竟做错了什么?

0 投票
1 回答
362 浏览

arrays - SwiftUI,IF 在 ForEach 循环内显示不同的文本

我很难在 SwiftUI 的 ForEach 循环中显示某些文本。

我有一个用 ForEach 迭代的数组。问题是,我需要显示某些文本,以确定是否在日历中选择了特定日期。例如:

当数组有超过 2 个元素时,不匹配日期的文本会显示多次(因为它在 foreach 内)。这是有道理的,但我试图找出一种只显示一个“未指定日期”文本而不是许多文本的方法。

我尝试添加一个简单的 bool 来显示其他文本,但是如果没有按钮或其他东西,我无法更改它的状态。我需要完全以编程方式执行此操作。我还将 else 语句移到了循环之外,但次要文本再次显示在当前日期选择中。

我能做些什么来解决这个问题?如果我可以在符合 SwiftUIs 视图的同时以编程方式设置布尔值,那么我可以解决这个问题,但我不确定如何解决。

0 投票
1 回答
418 浏览

swiftui - 删除最后一个数组元素时,SwiftUI列表ForEach索引超出范围

我现在正在学习 SwiftUI,遇到了这个我似乎无法解决的问题。可能有一个非常简单的解决方案。本质上,我有一个包含 NSManagedObjects(房间)列表的视图模型:

从视图模型中的房间列表中删除最后一个元素时,foreach 崩溃:

当我删除一个房间时,这是运行的代码:

然后应用程序在视图中的 ForEach 循环上崩溃,指出索引超出范围。这是一些异步问题,在从视图模型的列表中删除元素之前,视图状态会更新吗?