【发布时间】:2019-03-21 20:42:30
【问题描述】:
我想使用UISwitch 在动态表格视图中显示/隐藏 tableViewCell。
UISwitch 定义在一个 `UITableViewCell.
@IBOutlet weak var switchState: UISwitch!
在另一个文件中我想说如果此开关打开,行数将为 5,否则应为 4
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let test = PopupViewCell()
if test.switchState?.isOn == true {
detailsTableView.reloadData()
return 5
} else {
return 4
}
}
但它不起作用,它总是显示 `return 4。 我也测试一下:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let test = PopupViewCell()
if test.switchState.isOn {
detailsTableView.reloadData()
return 5
} else {
return 4
}
}
但是我会得到这个错误:
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
我不确定在此过程之前是否必须使用一些操作功能,如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
细胞不应该保存它们的数据源。您必须与您的对象拥有单独的数据源数组,其中包含以下内容:对象 1 - 可见,对象 2 - 不可见,...然后根据对象的属性设置出口值。您的错误的另一个原因是,您只是在初始化您的单元,并且您的插座没有正确连接,因为您初始化错误。动态单元格应出列。
标签: swift uitableview uiswitch