3

ラベルと各セルに2つのボタンがあるテーブルビューがあります。現時点では、スワイプして削除するこのコードがあります。

- (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つのこと。スワイプして削除したときのように、削除ボタンをスライドさせたいです。

誰か助けてもらえますか?

4

1 に答える 1

2

ボタンがセル内にある場合は、そのタグプロパティをindexPath.row値に設定し、ターゲットのdeleteRow:(id)senderメソッドを経由で割り当てることができ -(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEventsます。ボタンをスライドさせるには、panGestureRecognizerを実装する必要があります。これについては間違っているかもしれませんが、タッチ位置を検出してボタンをスライドさせる(スライドしながらフレームを設定する)という考え方がほとんどです。また、ボタンをスライドして削除する場合は、スワイプを無効にしてテーブルを削除する必要があります。

于 2012-11-30T08:28:21.737 に答える