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

wordpress - 如何使用带有 SwiftUI 的 Rest API 获取 Wordpress 帖子的帖子 ID

我正在尝试将我的 WordPress 网站中的一些博客文章包含到我的应用程序中。我已经使用每个帖子的单独帖子 ID 测试了 API,并让它在我的视图中加载数据。但是,我现在正在尝试获取一个数组,但它似乎没有获取与帖子相关的 ID 来填充视图。我在这里做错了什么?

这是 ForEach 循环

我的数据模型

我只是想用数据填充我的循环,但它似乎并没有从 api 调用中获取 ID。在这里需要一些帮助

我仍然将图像 URL 包含在条件语句中。目前图像不会通过。如何将其调整为更新的设置?

这是更新的图像代码:

0 投票
1 回答
677 浏览

swiftui - 在一个 SwiftUI 视图中相同的 ForEach 循环两次

当我在视图中对数组使用 ForEach 循环两次时,我在运行时收到以下警告:
LazyVGridLayout: the ID 84308994-9D16-48D2-975E-DC40C5F9EFFF is used by multiple child views, this will give undefined results!

到目前为止,原因很清楚,但是解决这个问题的最聪明的方法是什么?

以下示例代码说明了该问题:

我可以将视图分成几个子视图。
还有其他选择吗?

编辑:
这是真实应用程序的主体:

0 投票
1 回答
78 浏览

swiftui - 在 SwiftUI 中使用 ForEach(data:,content:) 和 @EnvironmentObject 而不使用尾随闭包语法?

我正在重构我的代码,并希望将成员初始化程序与 ForEach(data:,content:) 一起使用。

我有一个视图模型,其中包含符合 Identifiable 的结构数组:

然后我创建了一个 CellView,它有一个 CellModel 的成员初始化器,还有一个 EnvironmentalObject,它是 ViewModel 的一个实例:

但是,当我创建父视图时,我在 ForEach(data:, content:) 行上收到编译器错误:

我知道这是因为 ForEach(data:,content:) 试图将 EnvironmentObject 和单个模型都传递给每个 CellView,但是有没有办法做到这一点不必使用 ForEach(data:,content:)尾随关闭?:

0 投票
1 回答
159 浏览

ios - 如何为在 forEach 循环中单击的按钮设置动画?

当用户点击它时,我正在尝试为按钮设置动画。它在侧面偏移,使它看起来像是被按下了。

如果您查看图像,您应该会明白为什么我要通过偏移它来制作动画,因为我在按钮后面有一个偏移的背景,并且按钮在单击时应该与该框架匹配。

目前,点击时按钮动画如图所示,但所有按钮动画都被按下,并且在点击发生后它们不会返回到原始位置。

点击前的按钮
点击前的按钮

点击后的按钮
点击后的按钮

下面是按钮数组:

这是切换 isClicked 状态变量的函数

0 投票
1 回答
559 浏览

swift - 在第一个索引处将新元素插入集合时,如何使用 PageTabViewStyle 修饰符在 TabView 中更新 SwiftUI 的 ForEach

ForEachTabViewwithPageTabViewStyle修饰符中使用时,这是一个非常具体的问题。

每次我在数组的开头插入一个元素时,我的应用程序都会崩溃。

我得到一个

尝试从更新前仅包含 11 个项目的第 0 节中删除第 11 项

错误。

在画布中它也崩溃了。

最后的常规附加工作正常,当我删除 PageTabViewStyle 修饰符时它也可以工作。

让我知道我是否需要详细说明或是否有问题。

更新:我似乎在 iOS 15 中这个问题已经修复并且我的代码有效。我仍然希望找到 iOS 14 的解决方法。

我用一个简单的单页应用程序重现了这个问题:

0 投票
0 回答
174 浏览

swift - 实时 ForEach 视图更新 (macOS) 上的 SwiftUI CPU 高使用率

所以我有一个视图,我正在计算一个音频文件的振幅,然后将它传递给一个视图来绘制它,它会实时变化。问题是图表在几秒钟后变得如此滞后,并且 CPU 使用率最大化,并且几乎所有类型的东西都冻结了。有没有办法在 SwiftUI macOS 中使用 GPU 而不是 CPU 来渲染视图?

我正在更新 a 中的振幅值DispatchQueue.main.async并发送一个NSNotification.

SwiftUI 图形实时更新

这是我想显示图表时调用的文件

和文件AmplitudeVisualizer.swift

VerticalBar.swift

0 投票
1 回答
173 浏览

swift - 带有索引的 SwiftUI ForEach -“编译器无法在合理的时间内对该表达式进行类型检查”

在我正在编写的 swiftUI 视图中,我需要使用 a ForEach,访问列表的每个元素及其索引。我能找到的关于这个的大部分信息都说是用.enumerated()ForEach(Array(values.enumerated()), id: \.offset) { index, value in }

但是,当我尝试这样做时,我认为:

我得到了The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions在线错误var body: some View {

我还注意到这段代码会导致一些其他问题,比如让 Xcode 自动完成非常慢。

有什么想法可以解决这个问题吗?这似乎是一个非常简单的观点,我认为我正在做ForEach我应该做的。

谢谢!

0 投票
0 回答
854 浏览

arrays - SwiftUI 中用于 ForEach 的自定义视图数组

我有 4 个类似的视图,就像SettingsPointOneView()图中的每个点一样。他们存储 2 个视图SliderFirstPointX()SliderFirstPointY()在这种情况下。它们(SliderFirstPointX 等...)使用滑块控制和更改自定义图形特定点的轴(x,y)值。

外观:</p>

在此处输入图像描述

SliderFirstPointX() 和 SliderFirstPointY()

设置PointOneView()

我想将它们定位到 LazyVGrid 中,类似于屏幕截图上的样子。所以我创建了常量 var 并尝试像这样初始化它:

之后,出现了几条错误消息,我不知道如何处理:

在 ForEach 前面: • 作为类型的协议 'Any' 不能符合 'AccessibilityRotorContent

在 LazyVGrid 前面:

• 通用结构'LazyVGrid' 要求'some AccessibilityRotorContent' 符合'View';

• Initializer 'init(columns:alignment:spacing:pinnedViews:content:)' 要求'some AccessibilityRotorContent' 符合'View';

• 结构“ViewBuilder”要求“某些 AccessibilityRotorContent”符合“View”

因为我没有找到补救措施,我不得不使用这个实现,但这并不让我满意:

这个解决方案效果很好,虽然我猜这是实现这个功能的错误方法。

有没有办法在 ForEach 中使用视图数组的方法?

说实话,我已经编程了 3 个月,所以我会很感激任何关于我作为 Swift 开发人员应该学习什么的建议。

0 投票
2 回答
163 浏览

swift - 如何获取动态 List / ForEach 可绑定元素的索引(新 Xcode 13 的语法)?

到目前为止,要在动态集合中的元素和 List 的行之间设置绑定,我们必须这样做:

我们需要: 用于绑定的元素的索引;+ 的元素标识符List(以避免奇怪的动画);以及Binding在删除最后一行时避免崩溃的自定义。

这很复杂(我不确定它是否非常有效)。自 WWDC21 以来,我们有了一个新语法(可以反向部署):

它更干净。

但是,虽然强烈建议使用这种新语法,但如果能够在闭包中访问元素的索引,那就太好了。你知道我们该怎么做吗?

编辑 :

我试过这个(它有效),但我觉得这不是正确的方法:

0 投票
1 回答
172 浏览

swift - SwiftUI 如何使用带有自定义对象数组的 Dict 进行 ForEach 自动更新

我有一个包含自定义类数组的字典,定义如下:

我将它们放入 ForEach 中,如下所示:

我已经阅读了很多关于进行自动更新ForEach或的答案List,但没有一个使用字典,其中每个键下存储了一组自定义对象。更糟糕的是,我couponDictUserDefaults. 我怎样才能做到这一点ListForEach自动更新自己?