2016-09-12 3 views
2

У меня есть UITableView, который я управляю контроллером с UITableViewDelegate и UITableViewDataSource. В этой таблице у меня есть пользовательские ячейки, проблема в том, что функция editActionsForRowAtIndexPath вызывается только иногда (может быть, когда я Swype в определенном смысле, я не знаю), мой код выглядит следующим образом:UITableViewRowAction не работает

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { 
    return true 
} 
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { 
    let doneAction: UITableViewRowAction 
    //let highlightAction: UITableViewRowAction 
    if(self.compiti[indexPath.row].completato){ 
     doneAction = UITableViewRowAction(style: .Normal, title: "Da Fare") { (UITableViewRowAction, indexPath: NSIndexPath!) -> Void in 
      let compito = self.compiti[indexPath.row] 
      self.db.contrassegnaCompito(compito) 
      UITableViewRowAction 
     } 
     doneAction.backgroundColor = UIColor.redColor() 
    }else{ 
     doneAction = UITableViewRowAction(style: .Normal, title: "Fatto") { (UITableViewRowAction, indexPath: NSIndexPath!) -> Void in 
      let compito = self.compiti[indexPath.row] 
      self.db.contrassegnaCompito(compito) 
     } 
     doneAction.backgroundColor = UIColor(red: 67/255, green: 160/255, blue: 71/255, alpha: 0.7) 
    } 
    return [doneAction] 
} 
+0

Что вы имеете в виду **, возможно, когда я swype определенным образом, я не знаю? ** –

+0

Является ли ваш tableView внутри scrollView? –

+0

@KumarKL, что иногда это работает ... но я не знаю почему. Если я попробую 10 swypes, то 1 будет работать – Zac

ответ

0

это работает для меня с этим кодом, попробуйте начать с этого, и вы, вероятно, обнаружите, когда проблема возникает

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { 
    return true 
} 
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { 
    var doneAction :UITableViewRowAction! 

    doneAction = UITableViewRowAction(style: .Default, title: "Da Fare") { (UITableViewRowAction, indexPath: NSIndexPath!) -> Void in 
      UITableViewRowAction 
    } 
    return [doneAction] 
} 
+0

По-прежнему нет действий, я думаю, что в моей камере есть что-то еще, что «захватывает» действие ... – Zac

2

вам нужно добавить эту реализацию метода, а иначе вы не сможете красть, чтобы отобразить действия

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { 
    // it can be empty 
} 
+0

Его работы для меня. (На основе версии мы должны использовать это) – iApple

Смежные вопросы