Changing the background color of the selected UITableViewCell
I was trying to change the background of a cell when I clicked. This is similar to hover or css focus, how can I do this?
// NO MOMENTO QUE SELECIONAR UM ITEM DO MENU
func tableView (tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
switch (indexPath.row)
{
case 0:
var centerViewController = self.storyboard? .instantiateViewControllerWithIdentifier ("ViewController") as! ViewController
var centerNavController = UINavigationController (rootViewController: centerViewController)
var appDelegate: AppDelegate = UIApplication.sharedApplication (). delegate as! AppDelegate
appDelegate.centerContainer! .centerViewController = centerNavController
appDelegate.centerContainer! .toggleDrawerSide (MMDrawerSide.Left, animated: true, completion: nil)
break;
case 1:
var ensinoViewController = self.storyboard? .instantiateViewControllerWithIdentifier ("EnsinoViewController") as! EnsinoViewController
var ensinoNavController = UINavigationController (rootViewController: ensinoViewController)
var appDelegate: AppDelegate = UIApplication.sharedApplication (). delegate as! AppDelegate
appDelegate.centerContainer! .centerViewController = ensinoNavController
appDelegate.centerContainer! .toggleDrawerSide (MMDrawerSide.Left, animated: true, completion: nil)
break;
case 2:
var pesquisaViewController = self.storyboard? .instantiateViewControllerWithIdentifier ("PesquisaViewController") as! PesquisaViewController
var pesquisaNavController = UINavigationController (rootViewController: pesquisaViewController)
var appDelegate: AppDelegate = UIApplication.sharedApplication (). delegate as! AppDelegate
appDelegate.centerContainer! .centerViewController = pesquisaNavController
appDelegate.centerContainer! .toggleDrawerSide (MMDrawerSide.Left, animated: true, completion: nil)
break;
case 3:
var extensaoViewController = self.storyboard? .instantiateViewControllerWithIdentifier ("ExtensaoViewController") as! ExtensaoViewController
var extensaoNavController = UINavigationController (rootViewController: extensaoViewController)
var appDelegate: AppDelegate = UIApplication.sharedApplication (). delegate as! AppDelegate
appDelegate.centerContainer! .centerViewController = extensaoNavController
appDelegate.centerContainer! .toggleDrawerSide (MMDrawerSide.Left, animated: true, completion: nil)
break;
case 4:
var agendaViewController = self.storyboard? .instantiateViewControllerWithIdentifier ("AgendaViewController") as! AgendaViewController
var agendaNavController = UINavigationController (rootViewController: agendaViewController)
var appDelegate: AppDelegate = UIApplication.sharedApplication (). delegate as! AppDelegate
appDelegate.centerContainer! .centerViewController = agendaNavController
appDelegate.centerContainer! .toggleDrawerSide (MMDrawerSide.Left, animated: true, completion: nil)
break;
case 5:
var telefoneViewController = self.storyboard? .instantiateViewControllerWithIdentifier ("TelefoneViewController") as! TelefoneViewController
var telefoneNavController = UINavigationController (rootViewController: telefoneViewController)
var appDelegate: AppDelegate = UIApplication.sharedApplication (). delegate as! AppDelegate
appDelegate.centerContainer! .centerViewController = telefoneNavController
appDelegate.centerContainer! .toggleDrawerSide (MMDrawerSide.Left, animated: true, completion: nil)
break;
default:
println ("\ (menuItems [indexPath.row]) is selected");
}
}
}
+3
source to share
1 answer
Add this code to cellForRowAtIndexPath
. Thanks to @danh added a check if already there selectedBackroundView
, so no need to highlight a new one.
if cell.selectedBackgroundView == nil{
cell.selectedBackroundView = UIView()
}
cell.selectedBackgroundView.backgroundColor = // your color
+3
source to share