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