Swift UITableView 即時搜索數據 🔍
在 iOS 開發中,UITableView 是一個非常常見的控件,它可以用來顯示一系列的數據,而且可以讓開發者輕鬆地搭配其他控件來實現更多的功能。本文將介紹如何使用 Swift 來實現 UITableView 的即時搜索功能,讓開發者可以輕鬆地對 UITableView 中的數據進行搜索。
前置準備
在開始實現 UITableView 的即時搜索功能之前,我們需要先建立一個 UITableView,並且將它添加到我們的 ViewController 中。
let tableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(tableView)
}
接著,我們需要將 UITableView 的 dataSource 和 delegate 設置為我們的 ViewController,並且實現 UITableView 的必要方法,以便我們可以對 UITableView 中的數據進行操作。
tableView.dataSource = self
tableView.delegate = self
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = data[indexPath.row]
return cell
}
實現即時搜索
現在,我們可以開始實現 UITableView 的即時搜索功能了。首先,我們需要在 ViewController 中添加一個 UISearchBar,並且將它添加到 UITableView 的 headerView 中。
let searchBar = UISearchBar()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(tableView)
tableView.tableHeaderView = searchBar
}
接著,我們需要將 UISearchBar 的 delegate 設置為我們的 ViewController,並且實現 UISearchBar 的必要方法,以便我們可以在用戶輸入文字時對 UITableView 中的數據進行搜索。
searchBar.delegate = self
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
// 實現搜索功能
}
在實現搜索功能時,我們需要對 UITableView 中的數據進行過濾,只顯示符合用戶輸入文字的數據。我們可以使用 Swift 的 filter 方法來實現這個功能,並且在搜索完成後將結果重新顯示在 UITableView 中。
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
let filteredData = data.filter { $0.contains(searchText) }
tableView.reloadData()
}
結論
在本文中,我們介紹了如何使用 Swift 來實現 UITableView 的即時搜索功能,讓開發者可以輕鬆地對 UITableView 中的數據進行搜索。我們首先建立了一個 UITableView,並且將它添加到我們的 ViewController 中,然後將 UITableView 的 dataSource 和 delegate 設置為我們的 ViewController,並且實現 UITableView 的必要方法,接著我們添加了一個 UISearchBar,並且將它添加到 UITableView 的 headerView 中,最後我們將 UISearchBar 的 delegate 設置為我們的 ViewController,並且實現 UISearchBar 的必要方法,以便我們可以在用戶輸入文字時對 UITableView 中的數據進行搜索。
推薦閱讀文章
UISearchController 教程:入門
Swift 搜索欄教程
如何使用謂詞過濾 NSArray
如何使用謂詞過濾 NSArray
UITableView 教程:入門</a