SwiftUI 搜索栏功能通过结构数组进行搜索
Posted
技术标签:
【中文标题】SwiftUI 搜索栏功能通过结构数组进行搜索【英文标题】:SwiftUI Search bar feature searching through an array of structs 【发布时间】:2020-03-19 03:09:43 【问题描述】:我想在列表视图上实现搜索栏功能,下面是我当前的代码:
Section(header: SearchBar(text: self.$searchQuery))
List(fetcher.user) user in
HStack()
Text(user.name)
用户被声明为@Published var user = [User]()
如何实现搜索功能?我看过一些视频,但它们的用例比我的要简单得多,因为我试图通过结构数组执行搜索。
【问题讨论】:
如果您的意思是 standard SearchBar,那么主题 Does somebody have all ready implemented searchbar on tvos with swiftui? 应该会有所帮助 - 该解决方案实际上是独立于平台的。 【参考方案1】:我会使用ObservableObject
来执行搜索逻辑:
class SearchHandler: ObservableObject
var searchText: String = ""
didSet
search()
// Your array, replace String with your type
@Published var resultObjs: [String] = []
// Your initial array, replace String with your type
var allObjs: [String]
init(allObjs: [String])
self.allObjs = allObjs
func search()
// Write all your searching code here
// Use the searchText variable to filter out object
// from allObjs and write them into resultObjs
这是一个可以将值发布到侦听器的类,在这种情况下,它将是您的 SwiftUI 视图。
那么你可以这样使用它:
struct ContentView: View
// Replace the empty array with your initial data
@ObservedObject var searchHandler = SearchHandler(allObj: [])
var body: some View
Section(header: SearchBar(text: self.$searchHandler.searchText))
List(self.$searchHandler.$resultObj) user in
HStack()
Text(user.name)
【讨论】:
以上是关于SwiftUI 搜索栏功能通过结构数组进行搜索的主要内容,如果未能解决你的问题,请参考以下文章