TableViewCell特定单元格无法正确突出显示

时间:2018-10-09 13:47:34

标签: ios iphone swift uitableview

这是我的主屏幕enter image description here,当单击突出显示的单元格说明转到下一个视图控制器并且突出显示单元格时,当我单击未突出显示的单元格从而未突出显示单元格时,这意味着仅零索引单元格突出显示了一个另一个像一个索引,第二个索引如何突出显示其他索引。

我试图像这样在表视图中添加突出显示单元格:

enter image description here

但是在我的代码中,仅突出显示第一个单元格意味着索引为零

enter image description here

在第二个单元格上单击时,第二个单元格未突出显示

如何突出显示所选单元格?

这是我突出显示代码的功能:

func setHighlighted(_ highlighted: Bool,animated: Bool){
    if commentView != nil{
        UIView.animate(withDuration: 3, animations: {
            self.commentView.backgroundColor = UIColor(displayP3Red: 235/256, green: 187/256, blue: 194/256, alpha: 1.0)
        }) { (completed) in
            if completed {
                UIView.animate(withDuration: 3, animations: {
                    self.commentView.backgroundColor = .clear
                })
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

删除setHighlighted下设置背景颜色的代码。 这不是正确的更新方式,您可以在setSelected

中使用UITableVIewCell
override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: true)

    if selected {
        // set selected color
    } else {
        // set un-selected color
    }
}

或遵循方法

允许通过情节提要或通过代码选择多行

tableView.allowsMultipleSelection = true

let selectedBackgroundView = UIView(frame: CGRect.zero)
cell.selectedBackgroundView = selectedBackgroundView

OR

cell.multipleSelectionBackgroundView = selectedBackgroundView

答案 1 :(得分:0)

Xcode 10 Swift4

实施以下方法:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    UIView.animate(withDuration: 3, animations: {
        tableView.backgroundColor = UIColor(displayP3Red: 235/256, green: 187/256, blue: 194/256, alpha: 1.0)
    }) { (completed) in
        if completed {
            UIView.animate(withDuration: 3, animations: {
                tableView.backgroundColor = .clear
                tableView.deselectRow(at: indexPath, animated: true)
            })
        }
    }
}