swift2 – Swift – Clear TableView

swift2 – Swift – Clear TableView,第1张

概述我有一个搜索,它下载一个 JSON文件并在TableView中显示结果.如果用户搜索某些内容并获取结果列表,则搜索返回0结果的其他内容.第一组结果仍然在TableView中.我想在每次新搜索开始时清除TableView以防止发生这种情况.我已经尝试将数据源设置为nil并重新加载TableView但它无法正常工作.这就是我所拥有的: var searchResults : [[String : An 我有一个搜索,它下载一个 JSON文件并在tableVIEw中显示结果.如果用户搜索某些内容并获取结果列表,则搜索返回0结果的其他内容.第一组结果仍然在tableVIEw中.我想在每次新搜索开始时清除tableVIEw以防止发生这种情况.我已经尝试将数据源设置为nil并重新加载tableVIEw但它无法正常工作.这就是我所拥有的:
var searchResults : [[String : AnyObject]]? = nilfunc searchbarSearchbuttonClicked(searchbar: UISearchbar) {    print("DEBUG: searchbarSearchbuttonClicked")    if searchbar.text > "" {        //--- This isn't working ---        searchResults = nil        tableVIEw.reloadData()        //--------------------------        activityIndicator.startAnimating()        dbSearcher.startSearch(searchbar.text!) { (results) -> () in            self.searchResults = results            self.activityIndicator.stopAnimating()            self.tableVIEw.reloadData()        }        searchbar.endEditing(true)    }}overrIDe func tableVIEw(tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int {    if searchResults != nil {        print("DEBUG: Result count \(searchResults!.count)")        return searchResults!.count    } else {        print("DEBUG: Result count 0") //I don't see this other than when the VIEwController first loads        return 0    }}overrIDe func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell {    let cell : UItableVIEwCell = tableVIEw.dequeueReusableCellWithIDentifIEr("searchResult")!    cell.textLabel?.text = searchResults![indexPath.row]["Title"] as? String    cell.detailTextLabel?.text = searchResults![indexPath.row]["Year"] as? String    //display cover    let imageURL = searchResults![indexPath.row]["Poster"] as? String    if imageURL != "N/A" {        if let cover : UIImage = searchResults![indexPath.row]["Image"] as? UIImage {            cell.imageVIEw?.image = cover        } else {            //Use default cover while the correct image downloads            //cell.imageVIEw?.image = DEFAulT_COVER            downloadCover(imageURL!,tableVIEwRow: indexPath.row)        }    } else {        //Use default cover        //cell.imageVIEw?.image = DEFAulT_COVER    }    return cell}
不要使用可选类型.
声明一个非可选的空数组.
var searchResults : [[String : Any]]()

那么numberOfRowsInSection就可以了

overrIDe func tableVIEw(_ tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int {        return searchResults.count}

要清除表视图写入

searchResults.removeAll()tableVIEw.reloadData()

没有打包,没有检查零,没有问题.

总结

以上是内存溢出为你收集整理的swift2 – Swift – Clear TableView全部内容,希望文章能够帮你解决swift2 – Swift – Clear TableView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1028645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存