UITableViewCell Selected Background Color on Multiple Selection UITableViewCell Selected Background Color on Multiple Selection ios ios

UITableViewCell Selected Background Color on Multiple Selection


All the above answers are fine but a bit to complex to my liking. The simplest way to do it is to put some code in the cellForRowAtIndexPath. That way you never have to worry about changing the color when the cell is deselected.

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)    /* this is where the magic happens, create a UIView and set its       backgroundColor to what ever color you like then set the cell's       selectedBackgroundView to your created View */    let backgroundView = UIView()    backgroundView.backgroundColor = YOUR_COLOR_HERE    cell.selectedBackgroundView = backgroundView    return cell}


This worked for me:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {    var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!    selectedCell.contentView.backgroundColor = UIColor.redColor()}// if tableView is set in attribute inspector with selection to multiple Selection it should work.// Just set it back in deselect override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {    var cellToDeSelect:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!    cellToDeSelect.contentView.backgroundColor = colorForCellUnselected}//colorForCellUnselected is just a var in my class


Swift 3

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {    let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellIdentifier", for: indexPath)    cell.selectionStyle = .none    return cell}

Swift 2

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {     let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellIdentifier", for: indexPath)     cell.selectionStyle = .None     return cell}