2017-10-17 28 views
-4

ネイティブtableViewアニメーションを使用して、カスタムセルのボタンからアクションごとに表の行を削除したいとします。誰かが私を助けることができますか?カスタムセルのボタンでtableViewのネイティブアニメーションを含む行を削除するにはどうすればよいですか?

+0

こんにちは。あなたは何をしたいのかを説明し、これまでのコードを見せてください。 – boidkan

+0

削除セルテーブルビューのアニメーションを検索する –

+1

関連:https://stackoverflow.com/questions/40156274/deleting-a-row-from-a-uitableview-in-swift-3 –

答えて

0

私はカスタムデリゲートと TableViewDataSourceメソッドを使用して、良い解決策を見つけました。

次のように私は、私のカスタムセルクラスにプロトコルで動作するように持っていた:で

class MyCell: UITableViewCell { 

weak var delegate: MyCellDelegate? 

@IBAction func deleteButtonTapped(_ sender: Any) { 
    delegate?.didDelete(cell: self) 
    } 
} 

:私のカスタムセルクラスで

protocol MyCellDelegate: class { 
    func didDelete(cell: MyCell) 
} 

私はこれを作りました私のViewControllerデリゲートとデータソースの実装を行った:

extension ViewController: UITableViewDataSource { 

    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { 

     switch editingStyle { 
     case .delete: 
      tableView.beginUpdates() 
      tableView.deleteRows(at:[indexPath], with: .fade) 
      tableView.endUpdates() 
     default: 
      break 
     } 
    } 
} 

extension ViewController: MyCellDelegate { 

    func didDelete(cell: MyCell) { 

     guard let index = tableView.indexPath(for: cell) else { 
      return 
     } 

     myArray?.remove(at: index.row) 
     self.tableView(self.tableView, commit: .delete, forRowAt: index) 
    } 
} 
関連する問題