【问题标题】:editActionsForRowAtIndexPath: action is called automatically when swipeeditActionsForRowAt IndexPath:滑动时自动调用动作
【发布时间】:2017-11-21 19:31:16
【问题描述】:

我正在使用带有两个操作的 tableview,删除和编辑。当我滑动显示动作时,editActionsForRowAtIndexPath: 数组中返回的第一个动作被自动调用

-(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {

     UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"Delete" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
                                      {
                                         // delete ...
                                      }];

     deleteAction.backgroundColor = [UIColor redColor];

     UITableViewRowAction *edit = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"  Edit  " handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
                              {
                                   // edit ...
                              }];
     edit.backgroundColor = [UIColor colorWithRed:0x2F/255.0 green:0x83/255.0 blue:0xFB/255.0 alpha:1];    

     return @[deleteAction,edit];
}

这里调用了删除操作。我希望在滑动时显示这些操作,但不要在不点击的情况下调用。

【问题讨论】:

  • 我认为这不是问题。它应该在您滑动 tableviewcell 后调用。当您单击删除时,删除操作中编写的代码将被执行,所以我认为这不是问题。
  • 你是说当你从右向左滑动时你的单元格会被删除?
  • 完全正确,我不希望这样,我希望用户点击删除或编辑
  • 添加视频,不选择handler是不可能调用自己的
  • 显示您的删除代码?您到底在哪里编写删除功能的代码?

标签: ios objective-c uitableview


【解决方案1】:

为此,您需要轻轻滑动表格行。然后它将显示操作选项,并且仅在点击时调用操作。

【讨论】:

  • 有没有办法防止刷卡调用?
  • 没有。因为在完全滑动时,默认情况下,滑动手势会调用第一个动作。您可以根据自己的方便编辑操作顺序。例如:- return @[edit,deleteAction]; .因此,每次完整滑动单元格编辑操作时都会调用而不是删除操作。
  • 你可以用 Swift 做到这一点。只需实现 trailingSwipeActionsConfigurationForRowAt 而不是 editActionsForRowAtIndexPath。有关详细信息,请参阅此答案:stackoverflow.com/a/46417015/5758986
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多