在我的tableView中,我希望单元格是不可选择的。
所以我在TableViewController中写道:

override func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
    if indexPath.section == 0 {
        return nil
    } else {
        if switchIsOn! {
            return indexPath
        } else {
            return nil
        }
    }

}



当我在单元格中进行正常触摸时,它会按预期工作,但是当我将手指按住单元格时,无论如何它都会变为选中状态。如何避免这种情况?

最佳答案

当开关状态更改时,调用tableView.reloadData(),然后添加此

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    ...

    if indexPath.section != 0 && !switchIsOn! {
        cell.selectionStyle = .none
    } else {
        cell.selectionStyle = .default
    }
    return cell

}

关于ios - Swift UITableView willSelectRowAt无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46259252/

10-14 22:01