Pertanyaan Ganti gestur gesek di UITableView


Saya memiliki UITableView. Saya telah menambahkan ke tabel ini UIGestureRecognizer yang mencari swipe pada sel, dan memungkinkan pengeditan pada tabel itu jika mendeteksi swipe. Ketika saya menggesek ke kanan, itu memang memungkinkan pengeditan di atas meja. Namun, ketika saya geser ke kiri, saya mendapatkan tombol hapus merah default yang muncul di sisi kanan sel. Bagaimana saya bisa menonaktifkan perilaku default ini, dan membuatnya agar jika saya geser ke kiri ATAU ke kanan, saya dapat mengedit dengan cara apa pun?

- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
    foldersTable.editing=YES;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIGestureRecognizer *recognizer;
    recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
    [foldersTable addGestureRecognizer:recognizer];
    [recognizer release];

}

5
2017-09-03 21:55


asal


Jawaban:


Kembalilah UITableViewCellEditingStyleNone di dalam kamu tableView:editingStyleForRowAtIndexPath: metode.


3
2017-09-04 04:15



Ada properti arah pada UISwipeGestureRecognizer. Anda dapat mengaturnya ke gesekan kanan dan kiri:

recognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;

3
2017-09-03 22:52



Saya menggunakan cara lain untuk memecahkan masalah ini.

NSMutableArray *tableViewGestures = [[NSMutableArray alloc]initWithArray:[self.tableView gestureRecognizers]];
[[tableViewGestures objectAtIndex:2] setDirection:UISwipeGestureRecognizerDirectionLeft];
NSLog(@"directions %@" , [tableViewGestures objectAtIndex:2] );

NSArray *newTableViewGestures = [[NSArray alloc]initWithArray:tableViewGestures];
[self.tableView setGestureRecognizers:newTableViewGestures];

Saya mendapat tabelViewGestures NSArray dan meresetnya. Jika saya ingin menggunakan SwipeGestureRecognizerDirectionRigth, saya hanya perlu mengatur arah lagi. Ini mudah. ​​Benar?


0
2017-07-11 11:45