快速遍历数组

时间:2018-11-23 21:22:18

标签: ios swift loops uitableview

我有一个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)


    }

3 个答案:

答案 0 :(得分:0)

您可以使用以下tableview委托方法来允许选择

tableView:willSelectRowAtIndexPath:

只需检查单元格索引是否在禁用的单元格索引中,如果是,则返回nil。否则,返回索引路径。

您可以在此处查看文档: https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614943-tableview?language=objc#return-value

答案 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
}