我有一个约有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
,则一切正常,因此我认为延迟加载将解决我的问题。但是我不想弄乱List,所以我尝试将上面提到的所有代码放入LazyVStack { }
内,但没有帮助:代码的执行效果和以前一样差。 LazyVStack
真的比List
差很多吗?或者我做错了什么?
答案 0 :(得分:0)
Text("Hello")
根本不重用单元格,因此无论您做什么,它仍然会滞后于滚动。如果您的元素超出了屏幕尺寸,并且布局比List
更复杂,请使用{{1}}。