单点触控"Swipe To Delete"提交编辑样式不触发



我正在尝试在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。任何帮助都将不胜感激。谢谢

我在回答我自己的问题。事实证明,我的列表视图比它的容器大,所以删除按钮只是隐藏在屏幕外。面朝手掌。

sblom对哪些事件会被解雇的了解对我帮助很大。好消息。

据我所知,您只需override CommitEditingStyle即可完成此操作。只要你在滑动其中一行时看到一个删除按钮,你就会强烈地表明所有棘手的部分都在工作。如果你在滑动时没有看到删除按钮出现,我们应该集中精力弄清楚为什么是擅离职守。

从技术上讲,CanEditRowUITableViewDataSource协议上,EditingStyleForRowUITableViewDelegate协议上,因此,如果确实调用了这两个协议,我们可以排除一些问题,例如您的UITableViewSource只分配给DataSourceDelegate,而不是分配给组合的Source属性。

最新更新