使用自定义单元格从搜索更新tableView

珍娜

我试图根据在搜索栏中搜索到的内容更新tableView。我有三个要更新的标签,因此当用户搜索名称时,似乎每个学校的数据都是正确的。但是我总是收到一个致命错误,说索引超出范围,但是索引是1。我一直在打印索引,并且数组中有两个以上的对象。数据是从api接收的,并且数据显示得很好,就在我尝试搜索时。

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)-> Int {
        if searching {
            return searchCollege.count
        }
        else {
            return resultArray.count

        }
    }
}


extension ViewController: UISearchBarDelegate {
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText:String){

      let collegeNames = resultArray.map{$0.userSchool_name}

        names = collegeNames.filter({$0!.prefix(searchText.count) == searchText}) as! [String]

        for i in 0...resultArray.count
        {
            if names.contains(resultArray[i].userSchool_name!){
                print("Here's the value of i")
                print(i)
**gets caught at this line*** searchCollege[i].schoolName = resultArray[i].userSchool_name!
                searchCollege[i].admRate = String(resultArray[i].admission_rate!)
                searchCollege[i].actScores = String(resultArray[i].act_Scores_midCum!)
                searchCollege[i].satScores = String(resultArray[i].sat_Scores_midCum!)

            }
        }

        if (searchCollege.count == 0) {
            self.searchCollege[0].schoolName = "No Result"
            self.searchCollege[0].admRate = " "
            self.searchCollege[0].actScores = " "
            self.searchCollege[0].satScores = " "


        }
        searching = true
        tableView.reloadData()
    }

用户速拨

struct Root: Codable {
    let results : [Users]

}

struct Users: Codable {
    let userSchool_name: String?
    let admission_rate: Float64?
    let sat_Scores_midCum: Float64?
    let act_Scores_midCum: Float64?

    enum CodingKeys: String, CodingKey {
        case userSchool_name = "school.name"
        case admission_rate = "latest.admissions.admission_rate.overall"
        case sat_Scores_midCum = "latest.admissions.sat_scores.average.overall"
        case act_Scores_midCum = "latest.admissions.act_scores.midpoint.cumulative"
    }
}

瓦迪安

for回路只适用于这两种形式

for i in 0...resultArray.count - 1 { ...

或(推荐)

for i in 0..<resultArray.count { ...

但是还有一种更有效的语法

for (index, element) in resultArray.enumerated()
{
    if names.contains(element.userSchool_name!){
        print("Here's the value of index", index)
        searchCollege[index].schoolName = element.userSchool_name!
        searchCollege[index].admRate = String(element.admission_rate!)
        searchCollege[index].actScores = String(element.act_Scores_midCum!)
        searchCollege[index].satScores = String(element.sat_Scores_midCum!)
    }
}

并且请注意,如果searchCollege为空,您的代码也将可靠地崩溃

编辑:

根据numberOfRowsInSection方法为什么不简单

func searchBar(_ searchBar: UISearchBar, textDidChange searchText:String){

  if searchText.isEmpty {
     searchCollege.removeAll()
     searching = false
  } else {
     searchCollege = resultArray.filter{ $0!.userSchool_name.range(of: searchText, options: [.anchored, .caseInsensitive]) != nil }
     searching = true
  {
  tableView.reloadData()
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

快速创建自定义tableview单元格

来自分类Dev

Xamarin.IOS tableview自定义单元格

来自分类Dev

在自定义Tableview单元格中推送ViewController

来自分类Dev

Swift自定义单元格布局TableView的决定

来自分类Dev

tableview自定义单元格注册失败

来自分类Dev

自定义TableView单元格,检查条件

来自分类Dev

从Tableview自定义单元格翻转到UIViewController

来自分类Dev

具有不同单元格的自定义tableview

来自分类Dev

UIImageView溢出自定义tableview单元格

来自分类Dev

自定义单元格在 TableView 中全白

来自分类Dev

使用自定义大小的单元格和不可滚动的表格时调整tableView的高度

来自分类Dev

更新不同单元格中的自定义函数

来自分类Dev

自定义tableview单元格-需要选择单元格,即使按下单元格中的自定义按钮

来自分类Dev

删除项目后,使用自定义单元格工厂的ListView不会更新

来自分类Dev

希望自定义单元格使用其委托中的数据更新插座

来自分类Dev

使用自定义单元格创建多个部分

来自分类Dev

使用自定义单元格获取UITableViewCell indexPath

来自分类Dev

可重复使用的自定义单元格

来自分类Dev

使用UIView的自定义表格视图单元格

来自分类Dev

如何在自定义 Tableview 单元格下创建 Tableview

来自分类Dev

自定义 TableView 单元格未添加到 tableview

来自分类Dev

示例:自定义单元格的 Tableview 到另一个自定义单元格的 tableview

来自分类Dev

UISearchController的自定义单元格

来自分类Dev

自定义单元格标签

来自分类Dev

自定义单元格重复

来自分类Dev

如何使用Swift在UICollectionView单元格中加载自定义单元格(xib)

来自分类Dev

如何使NSTableView使用混合自定义单元格视图的自定义单元格视图?

来自分类Dev

如何使用 Swift 显示从 Viewcontroller B 接收到的值到 Viewcontroller A tableview 自定义单元格文本视图?

来自分类Dev

如何在Swift中使用搜索栏过滤具有自定义单元格的UITableView的内容?

Related 相关文章

  1. 1

    快速创建自定义tableview单元格

  2. 2

    Xamarin.IOS tableview自定义单元格

  3. 3

    在自定义Tableview单元格中推送ViewController

  4. 4

    Swift自定义单元格布局TableView的决定

  5. 5

    tableview自定义单元格注册失败

  6. 6

    自定义TableView单元格,检查条件

  7. 7

    从Tableview自定义单元格翻转到UIViewController

  8. 8

    具有不同单元格的自定义tableview

  9. 9

    UIImageView溢出自定义tableview单元格

  10. 10

    自定义单元格在 TableView 中全白

  11. 11

    使用自定义大小的单元格和不可滚动的表格时调整tableView的高度

  12. 12

    更新不同单元格中的自定义函数

  13. 13

    自定义tableview单元格-需要选择单元格,即使按下单元格中的自定义按钮

  14. 14

    删除项目后,使用自定义单元格工厂的ListView不会更新

  15. 15

    希望自定义单元格使用其委托中的数据更新插座

  16. 16

    使用自定义单元格创建多个部分

  17. 17

    使用自定义单元格获取UITableViewCell indexPath

  18. 18

    可重复使用的自定义单元格

  19. 19

    使用UIView的自定义表格视图单元格

  20. 20

    如何在自定义 Tableview 单元格下创建 Tableview

  21. 21

    自定义 TableView 单元格未添加到 tableview

  22. 22

    示例:自定义单元格的 Tableview 到另一个自定义单元格的 tableview

  23. 23

    UISearchController的自定义单元格

  24. 24

    自定义单元格标签

  25. 25

    自定义单元格重复

  26. 26

    如何使用Swift在UICollectionView单元格中加载自定义单元格(xib)

  27. 27

    如何使NSTableView使用混合自定义单元格视图的自定义单元格视图?

  28. 28

    如何使用 Swift 显示从 Viewcontroller B 接收到的值到 Viewcontroller A tableview 自定义单元格文本视图?

  29. 29

    如何在Swift中使用搜索栏过滤具有自定义单元格的UITableView的内容?

热门标签

归档