根据选择在表格视图中显示/隐藏节

时间:2018-07-30 06:25:07

标签: swift

我正在开发ipad应用程序,该应用程序用于资产请求, 我有6个复选框和表格视图,例如图片enter image description here

我在表中创建了6个部分,当用户在表视图中选择前笔记本电脑时,我需要只显示笔记本电脑部分,而其他部分将被删除或隐藏。 这是我的代码

@objc func circleBoxValueChanged(sender: Checkbox) {
    tblView.isHidden = false


    switch sender.tag {
    case 1:
        print("1")
    case 2:
        print("2")
    case 3:
        print("3")
    case 4:
        print("4")
    case 5:
        print("5")
    case 6:
        print("6")
    default:
        break
    }
    print("circle box value change: \(sender.isChecked)")
}


// MARK: - TableView Delegate
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 200
}

func numberOfSections(in tableView: UITableView) -> Int {
    return 6
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    if section == 0 {
        return "Laptop"
    }else if section == 1 {
        return "Mobile"
    }else if section == 2 {
        return "Ex Badge"
    }
    else if section == 3 {
        return "VIP Badge"
    }
    else if section == 4 {
        return "Gift"
    }
    else if section == 5{
        return "Locker"
    }else{

        return "Other"

    }
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if section == 0 {
        return 1

    }else if section == 1{
        return 1

    }else if section == 2{
        return 1

    }else if section == 3{
        return 1

    }else if section == 4{
        return 1

    }else if section == 5{
        return 1

    }else{
        return 0

    }
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
    switch indexPath.section {
    case 0:
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! laptop_MobileTableViewCell
        return cell1

    case 1:
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! laptop_MobileTableViewCell
        return cell1

    case 2:
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! OtherRequstTableViewCell
        return cell1

    case 3:
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! OtherRequstTableViewCell
        return cell1
    case 4:
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! OtherRequstTableViewCell
        return cell1

    case 5:
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! OtherRequstTableViewCell
        return cell1


    default:
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! OtherRequstTableViewCell
        return cell1

    }



}

你能帮我吗

1 个答案:

答案 0 :(得分:1)

您可以尝试

 struct Item {

   var name:String

   var isShown:Bool
}

let arr = [Item(name:"LapTop",isShown:true)] // and so--on

numberOfSections

return arr.filter {$0.isShown}.count

titleForHeader

return arr.filter{$0.isShown}[indexPath.section].name