繁体   English   中英

如何UISearchcontroller自定义单元格Swift

[英]How to UISearchcontroller customcell swift

我有数组

let Name:[String] = ["John","Peter","Jack"]
let Sal:[String] = ["50000","37000","63000"]

和tableview显示数据

{
    Name:John
    Salary:50000
}
{
    Name:Peter
    Salary:37000
}
{
    Name:Jack
    Salary:63000
}

我要搜索姓名tableview将显示姓名和薪水该如何使用,谢谢

您的数组转换字典:

let Name:[String] = ["John","Peter","Jack"]
let Sal:[String] = ["50000","37000","63000"]

var AllData:Array<Dictionary<String,String>> = []
var SearchData:Array<Dictionary<String,String>> = []

for i in 0..<Name.count
{
    var data:Dictionary<String, String> = Dictionary<String, String>()
    data["name"] = Name[i]
    data["salary"] = Sal[i]
    AllData.insert(data, at: AllData.count)
}

SearchData=AllData

UISearchBar删除方法:

func searchBar(searchBar: UISearchBar, textDidChange searchText: String)
{
    let predicate=NSPredicate(format: "name CONTAINS[cd] %@", searchText)
    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
    }
    tableview.reloadData()
}

func searchBarSearchButtonClicked(searchBar: UISearchBar)
{
    self.searchBar.resignFirstResponder()
}

UITableView的删除方法:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    return SearchData.count
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
    return 44
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! UITableViewCell

    var Data:Dictionary<String,String> = SearchData[indexPath.row]
    cell.NameLbl.text = Data["name"]
    cell.SalaryLbl.text = Data["salary"]

    return cell
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM