uitableview に「スワイプして削除」機能を実装しようとしています。私は他のチュートリアル/フォーラムに従い、UITableViewSource を拡張しました。そのクラス内で、次のメソッドをオーバーライドしました。
public override void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
{
if (editingStyle == UITableViewCellEditingStyle.Delete)
{
tableItems.RemoveAt(indexPath.Row);
tableView.DeleteRows(new [] { indexPath }, UITableViewRowAnimation.Fade);
}
}
public override UITableViewCellEditingStyle EditingStyleForRow(UITableView tableView, NSIndexPath indexPath)
{
return UITableViewCellEditingStyle.Delete;
}
public override bool CanEditRow(UITableView tableView, NSIndexPath indexPath)
{
return true;
}
これらが必要な唯一の方法だと思います。ただし、スワイプ ジェスチャを実行すると、CanEditRow メソッドと EditingStyleForRow メソッドが呼び出されますが、CommitEditingStyle は呼び出されません。どんな助けでも大歓迎です。ありがとう。