我怎样才能返回一个循环?

克里斯

我想知道滚动视图偏移量,并在互联网上发现他们是这样做的:

GeometryReader { geometry -> Text in
                        let newOffset = geometry.frame(in: .global).minY
                        if newOffset != self.offset {
                            self.offset = newOffset
                        }
                        return 
                            Text("aha")
                    }

不幸的是,我的“返回类型”是

ForEach (MathTaskType.allCases) { eachType in
                                MathTypeRow(mathType: eachType)
                            }

我不知道在这里写什么(xxxx)。

我在 Group 周围尝试过它,但我没有让它运行......

谢谢您的帮助。

 GeometryReader { geometry -> xxxxxx in  //  what do i have to input here?
                    let newOffset = geometry.frame(in: .global).minY
                    if newOffset != self.offset {
                        self.offset = newOffset
                    }
                    return 
                        ForEach (MathTaskType.allCases) { eachType in
                            MathTypeRow(mathType: eachType)
                        }

                }
白珠

在这里, AnyView 类型是救援:

GeometryReader { geometry -> AnyView in
                    let newOffset = geometry.frame(in: .global).minY
                    if newOffset != self.offset {
                        self.offset = newOffset
                    }
                    return AnyView ( // <- Here!
                        ForEach (MathTaskType.allCases) { eachType in
                            MathTypeRow(mathType: eachType)
                        }
                    )
                }

它将任何 View 转换为通用类型,没有泛型类型的困难。

当然, ForEach 本身也有一个类型,我猜它类似于ForEach<[MathTaskType], MathTaskType.ID, MathTypeRow>. 但这并不是更好,使用 AnyView 还为未来的变化提供了灵活性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我怎样才能返回一个 Promise?

我怎样才能在 python 中进行一个单一的循环等待

我怎样才能让一个for循环,将显示在JavaFX 8周的TextField

我怎样才能让一个for循环与双打的阵列?

我怎样才能把这个 foreach push 循环变成一个 reducer 函数?

我怎样才能只返回一个共同的价值?

我怎样才能牢固地返回一个结构体数组?

我怎样才能返回一个中序遍历而不是仅仅打印它

我怎样才能得到一个结果?SQL:CASE返回两行

我怎样才能适当地模拟出一个返回yield的方法?

我怎样才能重复一个模式?

我怎样才能写一个指向函数?

我怎样才能聚合计数函数返回一个数字而不是一个数组

如果处理错误,While 循环会跳过一个循环。我怎样才能让它运行剩余的周期?

我怎样才能乘法在(与000和1000独家)一个整数,而无需使用控制语句或循环的数字?

我怎样才能得到一个“枚举”的价值观在一个通用的?

我怎样才能找到的第一个犯了JGit一个分支?

我怎样才能让一个 for 语句有一个 else

我怎样才能用一个秘密密钥锁定一个javacard?

我怎样才能让一个类实现一个接口...(C ++)

我怎样才能让一个用户表单完成另一个?

我怎样才能省略一个网址,以便我到达我想要的网址

我怎样才能让Selenium使用我的firefox(而不是创建一个新的)

我怎样才能有一个接受“我的类型”类型参数的抽象方法?

我怎样才能让我的Ubuntu从给定的源中寻找一个库

我怎样才能@Input一个复杂的对象到我的AngularDart组件中?

我怎样才能让我的 CNN 输出一个特征向量

我怎样才能得到我的例子(CSS)的最后一个孩子?

我怎样才能增加一个变量,以便它存储我想要的值?