List中的SwiftUI ScrollView在滚动时消失
Posted
技术标签:
【中文标题】List中的SwiftUI ScrollView在滚动时消失【英文标题】:SwiftUI ScrollView inside List disappears when scrolling 【发布时间】:2019-12-22 14:56:20 【问题描述】:如果我将多个水平 ScrollView
s 放入 List
内,它们会在滚动时消失。这是一个例子:
这里是重现问题的代码:
struct ContentView: View
var body: some View
List
ForEach(0...100, id: \.self) _ in
ScrollView(.horizontal)
HStack
Rectangle().frame(width: 100, height: 100)
Rectangle().frame(width: 100, height: 100)
Rectangle().frame(width: 100, height: 100)
我使用的是 ios 13.3。不幸的是,将帧添加到 ScrollView
或 HStack
并没有帮助。有谁知道解决这个问题的方法吗?
【问题讨论】:
我建议使用垂直ScrollView
而不是List
- 没有这个问题(以及其他已知的基于列表的问题)
@Asperi A List
如果有很多项目,性能会更好。此外,我不能像List
(GroupedListStyle()
) 那样设置ScrollView
的样式。所以仅仅使用ScrollView
对我来说并不是一个真正的解决方案。
你有没有设法解决这个问题?
@ryansle 不,我还没有找到解决办法。
@ThomasVos 正是这个链接最终为我解决了这个问题:***.com/questions/59810913/…
【参考方案1】:
这似乎是与物品重用有关的错误。您可以尝试修复在 Lists 和 ScrollViews 中设置 id。
List(array, id: \.self) item in
Text("\(item)")
.id(UUID().uuidString)
here 和 here 中有关此修复的更多信息。
【讨论】:
在我的情况下,只需将 id 设置为滚动视图即可。谢谢你的回答。 非常感谢! @KarenKarapetyan以上是关于List中的SwiftUI ScrollView在滚动时消失的主要内容,如果未能解决你的问题,请参考以下文章
远程图像使用 List 正确加载,但在使用带有嵌入式 VStack 的 ScrollView 和 SwiftUI 时不加载
SwiftUI:在 ScrollView 或 List 中时,PageTabViewStyle() 新损坏?
ScrollView 或 List,如何制作特定的可滚动视图 (SwiftUI)
如何在 SwiftUI 中删除 List 和 ScrollView 的底部填充