我有一个大概100行的视图:
ForEach(moodEntries.reversed(), id: \.self) { entry in
Button(action: {
self.activeMoodForModal = moodEntries.lastIndex(of: entry) ?? 0
self.showMoodModal.toggle()
}) {
MoodTableViewCard(entry: entry)
}
}.sheet(item: $activeMoodForModal) { item in
MoodEntryModalView(entry: moodEntries[item], saveNote: {
do {
try context.save()
} catch {
print(error)
}
})
}性能真的很差:当我打开这个视图时,整个应用程序会在模拟器上冻结3秒。如果我将ForEach更改为List,那么一切都可以正常工作,所以我认为延迟加载将解决我的问题。但是我不想搞乱列表,所以我试着把上面提到的所有代码都放在LazyVStack { }中,但是没有什么用:代码的性能和以前一样糟糕。LazyVStack真的比List差得多吗?还是我做错了什么?
发布于 2020-10-09 15:38:32
LazyVStack根本不重用单元格,所以不管您做什么--它在滚动时仍然会滞后。如果您的元素比适合屏幕的元素多,并且布局比Text("Hello")更复杂,请使用List。
https://stackoverflow.com/questions/64207443
复制相似问题