通过单击按钮替换滑动删除操作

时间:2012-11-30 08:19:56

标签: iphone objective-c ios uitableview

我有一个带有标签的tableview和每个单元格上的两个按钮。目前我有这个代码可以滑动删除。

- (void) tableView: (UITableView *) tableView commitEditingStyle: (UITableViewCellEditingStyle) editingStyle forRowAtIndexPath: (NSIndexPath *) indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [appointments removeObjectAtIndex: indexPath.row];  // manipulate your data structure.
        [tableView deleteRowsAtIndexPaths: [NSArray arrayWithObject: indexPath]
                         withRowAnimation: UITableViewRowAnimationFade];
       NSLog(@"row deleted");  // Do whatever other UI updating you need to do.
    }
} 

当我滑动时,此代码会执行。但是我希望它在按下按钮时执行。该按钮与以下IBAction链接。

- (IBAction)deleteRow:(id)sender {
  //Delete row
}

要记住一件事。我希望删除按钮像滑动删除时一样滑动。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

如果您的按钮位于单元格中,则可以将其tag属性设置为indexPath.row值,并通过-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents为目标指定deleteRow:(id)sender方法。为了使按钮滑动,您可能需要实现panGestureRecognizer。我可能错了,但这个想法应该是检测触摸位置和滑动按钮(滑动时设置框架)。如果您打算通过滑动按钮删除,则可能需要禁用在桌面上滑动才能删除。