我正在开发ipad应用程序,该应用程序用于资产请求, 我有6个复选框和表格视图,例如图片
我在表中创建了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
}
}
你能帮我吗
答案 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