用搜索栏过滤长列表非常慢
Posted
技术标签:
【中文标题】用搜索栏过滤长列表非常慢【英文标题】:Filtering a long list with search bar is very slow 【发布时间】:2020-10-04 15:57:00 【问题描述】:我有一个最多包含 100 个项目的列表。在使用搜索栏过滤列表时,每个字母都需要一些时间。 如何加快搜索速度? 一种可能的解决方案是仅在单击键盘上的搜索按钮后进行过滤。
VStack
SearchBar(text: $searchTerm, placeholder: "Suche")
List
ForEach(gesetzestextTEMPO.filter
self.searchTerm.isEmpty ? true : $0.titel1.localizedCaseInsensitiveContains(searchTerm)
|| $0.titel1.localizedCaseInsensitiveContains(searchTerm)
|| $0.artikel.localizedCaseInsensitiveContains(searchTerm)
|| $0.marginale.localizedCaseInsensitiveContains(searchTerm)
|| $0.absatz0.localizedCaseInsensitiveContains(searchTerm)
|| $0.absatz0litaz.localizedCaseInsensitiveContains(searchTerm)
)
item in
Part13(gesetzestextTEMPO: item, searchTerm: self.$searchTerm)
```
【问题讨论】:
【参考方案1】:尝试以下方法:
List
// ...
.id(UUID())
这里建议:How to fix slow List updates in SwiftUI
【讨论】:
以上是关于用搜索栏过滤长列表非常慢的主要内容,如果未能解决你的问题,请参考以下文章
除非我在搜索栏中点击,否则 SearchController 不会显示未过滤的结果