Тумблер на кране TableViewCell - PullRequest
       17

Тумблер на кране TableViewCell

0 голосов
/ 05 февраля 2020

У меня есть два маленьких вопроса / проблемы:
1. Я хочу переключить мой переключатель, когда я нажимаю на свой tableViewCell? Можно ли обойтись без использования didSelectRow?
2. Еще одна небольшая проблема - когда я нажимаю на ячейку, ее фоновый цвет остается серым / выделенным. Я хочу, чтобы он был серым только в момент касания ячейки. Это возможно?

Ответы [ 2 ]

2 голосов
/ 05 февраля 2020

Да, вы можете, ниже вы найдете решение для обеих проблем ..

1) добавьте кнопку в cellforrow и используйте метод add target. поэтому всякий раз, когда вы нажимаете на кнопку, он вызывает ваш метод действия. поэтому, не используя метод didselect, вы можете запустить свое действие.

вы можете использовать вот так ...

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
     //add button here programatically or in your storyboard tableviewcell 

      cell.btnTemp.tag = indexPath.section
      cell.btnSelect.addTarget(self, action: #selector(CallyourDesireButtonAction(_:)), for: .touchUpInside)

}

 @objc @IBAction func btnSelectBillingAddressClicked(_ sender: UIButton)
{
   //Perform your action for switch
}

2) вы можете использовать следующий код:

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
    {
          if let cell = tableView.cellForRow(at: indexPath) as? YourTableViewCell 
          {

             cell.contentView.backgroundColor = UIColor.red
          }
    }



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

     if let cell = tableView.cellForRow(at: indexPath) as? YourTableViewCell 
    {
          cell.contentView.backgroundColor = UIColor.white
    }
 }
0 голосов
/ 05 февраля 2020

Если я правильно понимаю, вы просто хотите, чтобы подсветка исчезла сразу после нажатия.

Если это то, что вам нужно, вы можете вызвать напрямую deselectRow в методе didSelectRowAt indexPath:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        // Do your custom logic / toggle your switch
    }
...