HSSearchable
在 UIViewController 中使用 UISearchBar 从 UITableView 进行搜索的最简单方式
如何集成源代码?
-
直接将 HSSearchable.swift 拖放到您的 Xcode 项目中。
-
最推荐:通过 Cocoapods 安装(如何使用 Cocoapods)
pod 'HSSearchable'
如何在代码中使用?只需按照以下简单步骤:)
import HSSearchable
//Suppose this is your datamodel
struct UserDM {
var name: String
var city: String
}
-
使用 SearchableData 代理扩展您的类或结构
extension UserDM: SearchableData { var searchValue: String{ return self.name + " " + self.city //this will search from the name and city both //return self.name //this will search from the name only } }
-
在 viewController 中将 'SearchableWrapper' 变量作为属性创建
var usersData = SearchableWrapper() var users: [UserDM] { //use this array as you are using array for your tableview controller return self.usersData.dataArray as! [UserDM] }
-
设置搜索栏代理和搜索回调
override func viewDidLoad() { super.viewDidLoad() self.searchbar.delegate = self.usersData self.usersData.searchingCallBack = { isSearching, searchText in print("searching Text:= \(searchText)") self.tableView.reloadData() } self.loadDummyData() }
-
设置本地数组或使用 API|Webservice 调用从服务器加载数据
func loadDummyData(){ //This is just an example data let user1 = UserDM(name: "Hitendra Solanki", city: "Ahmedabad") let user2 = UserDM(name: "Justina Flores", city: "Arizona") let user3 = UserDM(name: "Lisa Minick", city: "Casper") let user4 = UserDM(name: "Moises Patrick", city: "Reno") let user5 = UserDM(name: "Martha Fisher", city: "Tacoma") let user6 = UserDM(name: "Martha McDaniel", city: "Irvine") let array : Array<UserDM = [ user1, user2, user3, user4, user5, user6 ] //In most of the cases, this data will come from the server side self.usersData.serverArray = array; self.tableView.reloadData() }
完成了
联系
twitter: @hitendrahckr