uitextfield:
@IBOutlet var SearchTxt: UITextField!
var search:String=""
@IBOutlet var ListTable: UITableView!
var AllData:Array<Dictionary<String,String>> = []
var SearchData:Array<Dictionary<String,String>> = []
Viewdidload:
override func viewDidLoad()
{
super.viewDidLoad()
AllData = [["pic":"list0.jpg", "name":"Angel Mark", "msg":"Hi there, I would like read your...", "time":"just now", "unread":"12"],
["pic":"list1.jpg", "name":"John Doe", "msg":"I would prefer reading on night...", "time":"56 second ago", "unread":"2"],
["pic":"list2.jpg", "name":"Krishta Hide", "msg":"Okey Great..!", "time":"2m ago", "unread":"0"],
["pic":"list3.jpg", "name":"Keithy Pamela", "msg":"I am waiting there", "time":"5h ago", "unread":"0"]
]
SearchData=AllData
}
:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
{
if string.isEmpty
{
search = String(search.characters.dropLast())
}
else
{
search=textField.text!+string
}
print(search)
let predicate=NSPredicate(format: "SELF.name CONTAINS[cd] %@", search)
let arr=(AllData as NSArray).filtered(using: predicate)
if arr.count > 0
{
SearchData.removeAll(keepingCapacity: true)
SearchData=arr as! Array<Dictionary<String,String>>
}
else
{
SearchData=AllData
}
ListTable.reloadData()
return true
}
:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return SearchData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "ListCell") as! ListCell
var Data:Dictionary<String,String> = SearchData[indexPath.row]
cell.Pic.image=UIImage(named: Data["pic"]!)
cell.Name.text = Data["name"]
cell.Msg.text = Data["msg"]
cell.Time.text = Data["time"]
cell.selectionStyle = .none
return cell
}