gpt4 book ai didi

SwiftUI 嵌套列表没有出现

转载 作者:行者123 更新时间:2023-12-04 04:23:58 25 4
gpt4 key购买 nike

我正在尝试创建一个包含两个嵌套 ListView 的 View 。这意味着主视图有行,每一行也有行。由于重新排序要求(编辑模式)和滑动删除(仅限内行),我不能只使用带有 ScrollView 的 ForEach 循环。问题如下:当我点击“+添加集”时,内部行不显示,尽管调试显示它们实际上已添加。原因可能是外排的 View 不适应其高度。我知道这一点,因为如果我只使用 ForEach 而不使用 List,那么行就会出现。但后来我无法使用滑动来删除。这是内部行的代码(作为 ListView ):

       List {
ForEach(self.exercise.sets) { set in
SetRow(set: set, exercise: self.exercise)
}.onDelete { (offsets) in
self.exercise.sets.remove(atOffsets: offsets)
}
}

每个外行在此列表之前都有 VStack(用于练习名称和列标题)和下方的按钮。看屏幕截图 Inner list without List, only ForEach loop

Althout object for the inner row was added, the row doesn't appear

最佳答案

似乎我找到了解决方法...外部列表在代码中看起来像这样:

 List() {

Text("New workout").font(.title)

ForEach(self.workoutModel.exercises) {exercise in
ExerciseWorkoutView(exercise: exercise)
}



}

我只是将以下框架修饰符添加到 ExerciseWorkoutView(这是一个带有 ListView 的 VStack:

.frame(height: self.minFrameHeight + self.setRowHeight * CGFloat(self.exercise.sets.count)).animation(.default)

minFrameHeightsetRowHeight 是我设置的常量。

self.exercise 是一个观察到的对象,其集合数组作为 @Published 实例变量。这就是框架高度自动适应的原因......

如果有人知道更好的解决方案,感谢您发帖。我已经尝试了 .fixedSize(...) 的几种变体,但没有用。

关于SwiftUI 嵌套列表没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58319713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com