ios - 使用搜索栏的问题

标签 ios swift uisearchbar

我正在尝试在我的其中一个屏幕中实现搜索功能。这是发布的代码...

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
    searchActive = true;
}
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
    searchActive = false;
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    searchActive = false;
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
    searchActive = false;
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {

    if searchText != "" {
        // Filter the results
        searchActive = true
//allTheData is an object of an array of struct
        filtered = self.allTheData.filter { _ in (searchText.lowercased().contains(searchText.lowercased())) }


        if(filtered.count == 0){
            searchActive = false;
        } else {
            searchActive = true;
        }
        self.tableView.reloadData()
    }}

cellForRow 中的代码如下:

    if(searchActive){

        let filtObj = filtered[indexPath.row]

        cell.nameLabel.text = filtObj.customer_name
        cell.amtLabel.text = "\(filtObj.total_sales)"
    } else {
        let dataObj = allTheData[indexPath.row]
        cell.nameLabel.text = dataObj.customer_name
        cell.amtLabel.text = "\(dataObj.total_sales)"
    }

numberOfRows 中的代码如下:

 if(searchActive) {
            return filtered.count
        }

        return allTheData.count

但是搜索没有发生。不知道是什么原因。希望有人能帮忙...

最佳答案

你的过滤逻辑有误

filtered = self.allTheData.filter { $0.lowercased().contains(searchText.lowercased()) }

关于ios - 使用搜索栏的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47606571/

相关文章:

ios - 是否可以在 iOS 中安排 SILENT 本地通知?

ios - 来自 URL 的 Swift 图片未显示

ios - 即使 View Controller 是 "child" Controller ,如何使用委托(delegate)和数据源更新 UITableView?

objective-c - UITableView 粘在 UISearchBar 上

ios - Swift - UIToolbar 中的 UISearchBar

ios - iOS 7-10 收到通知时如何显示本地通知?

ios - Google Analytics 手动安装 libz.dylib

ios - 如何摆脱 Apple Mach-O 链接器错误?

ios - 在 UITabBarController 中回调

ios - NSComparisonResult 选项