我有一个UITableView
,其中有100个单元格。我想创建一个数组,该数组将保存该表的索引值,如果所选的表行与该数组中的任何值匹配,我想禁用表单元格。
我发现以下代码可以禁用我给它的特定单元格。
UITableViewCellSelectionStyle.none
对此将提供任何帮助。
这就是我检查选择哪个单元格的方式:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedRow = tableView.indexPathForSelectedRow?.row
let workoutSelected = selectedRow
stringPassedTableView = workoutSelected!
let myVC = storyboard?.instantiateViewController(withIdentifier: "showWorkout") as! WorkoutViewController
myVC.stringPassed = stringPassedTableView
navigationController?.pushViewController(myVC, animated: true)
}
答案 0 :(得分:0)
您可以使用以下tableview委托方法来允许选择
tableView:willSelectRowAtIndexPath:
只需检查单元格索引是否在禁用的单元格索引中,如果是,则返回nil。否则,返回索引路径。
答案 1 :(得分:0)
更好的方法是,创建模型类的数组,这些数组将把数据传递到tableView数据源中。
在模型类中添加一个名为“ isSelectable”的属性,并在解析模型类数据时正确分配它。
使用此“ isSelectable”属性,当您选择一行然后检查此属性为true或false并相应地执行操作时。
希望你能理解!
答案 2 :(得分:0)
您有一个数组(或集合)作为类属性
var disabledRows = [IndexPaath]()
然后只需在func的开头使用它
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if disabledRows.contains(indexPath) { return }
// code to handle row with enabled cell
}