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







All Articles