didSelectRowAtIndexPath不一致地返回错误的行索引

时间:2016-05-27 09:09:56

标签: ios swift2 didselectrowatindexpath

我有一个包含行的表格视图,当点击该行时,有时会返回从我单击的位置向上一行的行。相关代码:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let currentCell: UITableViewCell = self.tableView.cellForRowAtIndexPath(indexPath)!

    currentCell.backgroundColor = UIColor.greenColor()
}


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell")!

    //.... cell modifications

    return cell
}


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // this is to make at least one empty row
    if (meeting.attendees.isEmpty) {
        return 1
    } else {
        if section == 0 {
            return requiredParticipants.count }
        else {
            return optionalParticipants.count }
    }
}

我该怎么做才能解决这个问题:

1。使用numberOfRows函数检查数组的一致性(它是正确的,数字是正确的)

2. 检查了细胞的高度 - 怀疑上部细胞以某种方式与底部细胞重叠 - 也不是这种情况

3. 重构的cellForRow使用dequeReusableCell(最初没有用过) - 怀疑是内存问题,也没用。

会发生什么:当您单击时,单击的单元格会以绿灯突出显示,并且大约50%的时间,单击一个位置的单元格会突出显示。问题也是不一致的,这意味着有一半时间会突出显示正确的问题。

0 个答案:

没有答案