【发布时间】:2022-10-01 10:10:10
【问题描述】:
例如,您需要在 SPM 中添加LoremSwiftum。
我发现在使用List的.init(_:id:rowContent:)构造函数时,搜索字段中的行项闪烁。
import SwiftUI
import LoremSwiftum
let words = Array(Set(Lorem.words(3000).components(separatedBy: \" \")))
struct ContentView: View {
@State var searchText = \"\"
var searchedWords: [String] {
searchText.isEmpty ? words : Array(words.filter { $0.localizedCaseInsensitiveContains(searchText) }.prefix(50))
}
var body: some View {
NavigationView {
List(searchedWords, id:\\.self) { word in
HStack {
Rectangle().frame(width: 50, height: 50).foregroundColor(.red)
Text(word)
}
}
.searchable(text: $searchText, placement: .navigationBarDrawer(displayMode: .always))
}
}
}
使用 .indices 使闪烁消失,即:
List(searchedWords.indices, id:\\.self) { i in
let word = words[I]
...
}
尽管据我了解,使用 .indices 可能会在项目更改时引起问题。
在列表中使用.id(UUID()) 也会使闪烁消失,尽管这也存在一些问题。
那么,如何使用正确的 List 构造函数并且在搜索时不会出现可怕的项目闪烁?
-
找到任何解决方案了吗?我正在使用 UUID,但问题仍然存在
标签: swiftui swiftui-list