问题标签 [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 回答
90 浏览

swiftui - 如何将 RandomAccessCollection 与 ForEach 列表一起使用?

我有一个看起来像这样的类:

当我尝试将它与 ForEach 一起使用时,出现错误:Cannot convert value of type 'TransactionResults' to expected argument type 'Range<Int>'

我需要在我的 TransactionResults 类中更改什么才能正常工作?

0 投票
1 回答
258 浏览

foreach - SwiftUI ForEach -- I can't limit number of iterations

This is my first time posting but I've been using this wonderful resource for awhile. I've looked at a number of posts on here as well as the internet in general and haven't come across a solution yet (or maybe I've missed them).

I am a novice coder working on an app in SwiftUI to help users learn phrases in a couple of Alaska Native languages. One portion of this app is a "quiz" feature that asks the user match a spoken phrase with one of four photos. I'm running into an issue with my ForEach loop. I can't pass in my array of objects, it wants a range of integers...but I can't just say ForEach(0...3) because it crashes with an 'out of range' error. I think maybe it's because my parameter is an @State variable that gets computed?

I tried changing it to a regular var but then had some compiler errors I had to deal with including changing the function calls to mutating, but then I wasn't able to use my .onAppear(perform:) because I can't mutate the struct.

I tried wrapping the ForEach portion in a "While" loop thinking maybe that would work, but that gave me a different compiler error. I'm not sure how to proceed.

A bit of background that may help: the 'lesson' portion of my app has a number of flashcards per category (food, clothing, etc). Each flashcard presents the phrase, text and sounds in two languages other than English. In the 'quiz' portion of the app the user has selected the language they want to be quizzed on, the category and the quiz style. He/she is then directed to the appropriate view with the appropriate parameters passed in. That's working great. The reason my parameter in the ForEach is computed is the not every phrase on the flashcards works in each style of quiz or with with each language. So although I may have 15 flashcards, only 12 of them might have a valid sound-photo match in Yup'ik but all 15 might in Dena'ina. So my 'correctQuizCards' parameter has been filtered to account for that. I suspect that's part of my problem but I'm just not sure how to make this work and only show 4 photos in the quiz. The code works fine with ForEach(0..

I've shared the code below. Hopefully I did it correct. I removed a couple of functions and variables that are irrelevant for this question (presenting an alert, etc). Thanks in advance for any help!

0 投票
0 回答
336 浏览

json - 如何在 ForEach SwiftUI 中使用来自 JSON 的自定义数据

我有带有自定义数据的 JSON 文件。目标PostCard()是在中使用这些数据ForEach(){}。但是我尝试在里面使用evetytime user,我在VStack中收到这个错误无法推断复杂的闭包返回类型;添加显式类型以消除歧义

我的 JSON 转换器函数如下所示:

自定义数据类型:

我在子视图中初始化它:

我的PostCard结构如下所示:

问题:有没有人知道如何在里面使用 JSON 数据ForEach(){}?我的目标是使用每个 PostCard 的各种 JSON 数据创建此视图。

0 投票
0 回答
15590 浏览

swift - Swift UI 教程错误“包含控制流语句的闭包不能与函数构建器'ViewBuilder'一起使用”

我尝试了 swiftUI 教程“处理用户输入”。

https://developer.apple.com/tutorials/swiftui/handling-user-input

使用“For”而不是“For Each”实现。但出现错误“包含控制流语句的闭包不能与函数构建器'ViewBuilder'一起使用”。

我该怎么做?

从:

至(我写):

0 投票
1 回答
1271 浏览

swiftui - 在 SwiftUI 1 中使用 LazyVStack

SwiftUI 2 的新特性之一是LazyVStacks。是否可以在当前的 SwiftUI 框架中实现其功能?我有以下代码示例,我想在其中使用它:

通常我会使用默认懒惰的列表。但由于其他限制,这是不可能的。

提前致谢。

0 投票
1 回答
766 浏览

ios - SwiftUI 使用 Stepper 动态添加/删除 TextField

大家好,我是 SwiftUI 的新手,我正在尝试找到一种巧妙的方法来添加或删除 TextFields,当按下陡峭的加号或减号时。

我目前有

但是,当调用 onDecrement 时,这会导致 Index out of bounds 异常。我尝试包装字符串以符合 Identifiable(使用@State内部结构声明),ForEach(answers)但是这会产生一个警告,指出该变量将不会被更新。

我尝试了此处发布的解决方案,但无济于事。

我不需要持久存储这个结果,因为它将被传递给一个单独的函数,在按钮按下时进行 API 调用。

对此的任何帮助将不胜感激。

0 投票
1 回答
1761 浏览

swiftui - "\.self" 在 swift/swiftUI 中实际上做了什么?

我不完全理解\.self以下代码中的确切作用:

我正在关注这个:https ://www.hackingwithswift.com/books/ios-swiftui/deleting-items-using-ondelete 。

我现在对该语言有一个非常基本的了解,因此我可能无法理解高级解释,因此更喜欢非常简单的解释或带有详细描述的类比。我认为它将id每个list项目设置为数字数组中的每个项目?如果错了,请纠正我 - 但是否每个id都设置为Int数字数组的每个条目中的任何内容?如果是这样,那么\在键入时实际做了\.self什么以及与.self结合实际做了\什么?

0 投票
1 回答
2990 浏览

swiftui - SwiftUI 如何让 ForEach 循环根据 Picker 中选定月份的天数进行迭代

所以我创建了一行代码,它接受两个值,一年和一个月,根据你给它的值,它会计算给定年份的给定月份的天数。最初我打算使用 State 变量,所以它会自动更新,但由于 Structs 的工作方式,我无法使用刚刚初始化的变量。(如“不能在属性初始化程序中使用实例成员 'year';属性初始化程序在 'self' 可用之前运行”错误)。我想要这段代码的原因是因为我想要一个 forEach 循环基于该数字自动迭代(因为我正在制作的应用程序将在接下来的两年中每天都有一个列表)。这是我的代码:

}

导航链接的 ForEach 循环是我想要迭代的循环。我尝试过创建这样的函数:

}

但是,我不确定我会在哪里运行它,如果它甚至可以工作的话。我是 SwiftUI 和 GitHub 的新手,所以如果有更多信息我可以提供帮助,请问!

0 投票
1 回答
236 浏览

swift - 使用 SwiftUI 的 For Each 来确定要添加到列表中的 View

我正在尝试使用 ForEach 在 SwiftUI 中重新创建下面的 UIKit

这是我的模型

所以我在 ViewModel 中创建了一个数组

我想用 ForEach 迭代这个数组并建立一个视图列表。这是我写的代码

这给了我这个错误

类型 '()' 不能符合 'View';只有结构/枚举/类类型可以符合协议

我理解这个错误,我知道它为什么会失败,但没有其他解决方案可以重写。这可以通过swiftUI实现吗?

0 投票
1 回答
122 浏览

ios - 同一列表中的多个 ForEach 与具有一个 ForEach 的多个列表

我是 iOS 和 SwiftUI 的新手,正在制作一个“目标”应用程序。我引用的代码是一个简单的列表,在标记为完成的目标之上列出了不完整的目标。我在尝试将多个ForEachs 放入同一个 s时遇到了这个有趣的问题List

当我使用下面的代码时,点击一个不完整的目标(从第一个 foreach 开始)会将该目标移动到边界以下,但GoalView()构造函数不会重新运行,所以目标仍然看起来不完整,而且它仍然保留了原来的闭包(goal.markComplete()),这会导致崩溃。值得注意的是,它today是一个@ObservedObject,它通过调用markComplete()和更新markIncomplete()

但是,当我切换到使用两个堆叠列表(见下文)时,问题就消失了。点击完成目标会将其移至底部列表,然后GoalView()构造函数运行,从而更改目标的外观和行为。

GoalView()导致底层实现在闭包中重新运行ForEach而顶层实现的根本区别是什么?不是吗?我对为什么两种实现都将完成的目标移动到边界以下感到特别困惑,尽管最上面的一个似乎没有执行附加到第二个的闭包ForEach。任何解释/提示将不胜感激!

编辑:today(type Day) 和goal(type Goal) 都是NSManagedObjects / CoreData 实体。下面包括我对completedGoalsfrom an extension to的定义Day,它应该阐明两者是如何定义和相关的。每个Day都有称为关系的关系completedGoals_incompleteGoals_它们是与那一天相关的无序目标集。

这是markComplete()从扩展到的粗略实现GoaldaysThatDidntComplete_是与的反比关系completedGoals_,与不完整的相同):