当前位置: 首页 > 知识库问答 >
问题:

搜索栏不显示搜索结果

桓瀚
2023-03-14

我的应用程序中的搜索栏不工作。我把问题缩小到方法CellForRowat。当输入单词时,它不能显示搜索结果。cellforRowAt包含索引路径中筛选的项目的信息。我该如何解决这个问题?

项目链接:https://github.com/lexypaul13/covid-news.git

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { //determines what data source should be used when user types

        if isFiltering{

            return filteredArticles?.count ?? 0

    }

        return articles?.count ?? 0



    }

    
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! NewsTableViewCell

        let news: Articles

        filteredArticles = articles

        if isFiltering{

            news = filteredArticles![indexPath.row]

        }

        else{

            news = articles![indexPath.row]

        }

        cell.authorName.text = filteredArticles?[indexPath.row].author

        cell.headLine.text = filteredArticles?[indexPath.row].title

        cell.newsImage.downloadImage(from:(self.filteredArticles?[indexPath.item].urlImage ?? "nill"))

        cell.timePublication.text = filteredArticles?[indexPath.row].publishedAt



        if let dateString = filteredArticles?[indexPath.row].publishedAt,

        let date = indDateFormatter.date(from: dateString){

                   let formattedString = outDateFormtter.string(from: date)

                   cell.timePublication.text = formattedString

               } else {

                   cell.timePublication.text = "----------"

               }

        

               return cell

           }
   

    func updateSearchResults(for searchController: UISearchController) {

        let searchBar = searchController.searchBar

        filterContentForSearchText(searchBar.text!, articles!)

    }

    func filterContentForSearchText(_ searchText:String ,_ category: [Articles]){

        filteredArticles =  articles?.filter({ (article:Articles) -> Bool in

            return article.description.lowercased().contains(searchText.lowercased())

            

        })

        table_view.reloadData()

    }

     

 ;

共有1个答案

殷德本
2023-03-14

代码中的问题是 行。在这行中,article.description给出了对整个对象的描述,是NSOBjectProtocol的一个方法。

因此,对于这个场景,您需要知道需要搜索哪个项以获得筛选结果。我查看了代码,知道 包含title作为参数。您可以使用它来筛选您的搜索

因此代码应该更改为CodeReturn(article.title?.lowercased().contains(SearchText.lowercased())??false)/code>。

 类似资料:
  • 苹果风格的搜索栏,带有一个自动隐藏的取消按钮。适合作为主搜索固定在页面顶部,搜索栏只是一个CSS组件,不提供任何JS功能,你也可以单独使用 .search-input。 <header class="bar bar-nav">   <h1 class='title'>搜索栏</h1> </header> <div class="bar bar-header-secondary">   <d

  • 搜索栏允许用户在列表元素中搜索,或者它可以用来作为UI组件,放到你自己的搜索实现中。 搜索栏布局 搜索栏应该放到“.page”内,“.page-content”前: <div class="page"> <!-- Search bar --> <form class="searchbar"> <div class="searchbar-input"> <inpu

  • <div class="ui-searchbar-wrap ui-border-b"> <div class="ui-searchbar ui-border-radius"> <i class="ui-icon-search"></i> <div class="ui-searchbar-text">搜索号码(2-10位)</div>

  • 我正在使用批量请求执行弹性搜索完整索引。我在索引过程中遇到了一个问题,结果是空的。由于我正在完整索引期间删除索引,因此如何处理这种情况。 我已经完成了以下步骤: 删除索引 创建索引 创建映射 批量请求 索引属性和映射: } 我有大约7.5万份文件。 谢谢,Sree。

  • 我已经花了很多时间弄清楚为什么我的搜索在我定制的模板中不起作用。到目前为止,我已经知道了如何包含searchform。php文件在我的头,创建搜索。php文件目前是空的(因此,当我搜索某个内容时,我会被重定向到一个空白页面,我想我肯定需要search.php文件中的某些内容才能使其正常工作),我阅读了Wordpress codex的所有内容,但找不到解决方案,我找到的唯一有用信息是这个。 http

  • search这部分是利用小程序input组件实现,在下面的示例中主要使用了focus和bindinput两个属性,由于mpvue从底层支持 Vue.js 语法和构建工具体系,因此可以用vue的v-model进行双向数据绑定,示例如下: <template> <div class="page"> <div class="page__hd"> <div class="page_

  • 我的分页工作正常,但是当使用搜索组件时,它只显示结果的第一页。我的页面URL没有搜索看起来像:http://localhost:8000/dictionary-management/postcode?page=2它的工作正确。 带搜索的我的第一页URL:http://localhost:8000/dictionary-管理/邮政编码/搜索和它的工作正常。 带搜索的我的第二页URL:http://l

  • 描述 (Description) 框架7允许使用searchbar类搜索元素。 搜索栏参数 S.No 参数和描述 类型 默认 1 searchList 它搜索列表的CSS选择器或HTML元素。 字符串或HTML元素 - 2 searchIn 您可以搜索CSS选择器的列表视图元素,也可以通过传递.item-title , .item-text类来搜索元素。 string '.item-title'