Действие, оставив нажатого UITableViewCell

Я программирую мое приложение и ищу способ осуществлять действие, когда я оставляю нажатой ячейку таблицы. Как он мог бы делать это в Свифте?

1
задан 28.03.2016, 18:33
2 ответа

AГ±ado она versiГіn в Свифте 2.x, чтобы считать это ссылкой.

Восток serГ - в mГ©todo для aГ±adir long press

let lpgr = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
lpgr.minimumPressDuration = 2.0; //seconds
lpgr.delegate = self;
self.myTableView.addGestureRecognizer(lpgr)

И было другим mГ©todo, что манипулирует

func handleLongPress(gestureRecognizer: UILongPressGestureRecognizer) {

    let p = gestureRecognizer.locationInView(self.myTableView)

    guard let indexPath = self.myTableView.indexPathForRowAtPoint(p) else {
        print("long press on table view but not on a row")
        return
    }

    switch gestureRecognizer.state {
    case .Began:
        print("long press on table view at row \(indexPath.row)")
    default:
        print("gestureRecognizer.state = \(gestureRecognizer.state)")
    }

}
2
ответ дан 24.11.2019, 14:41

Чтобы это делать deberГ-схвати добавлять long press gesture recognizer к UITableView.

Например, этот ответ в Стакк Оверфлов объясняет cГіmo делать это.


TraducciГіn :

Сначала добавляет long press gesture recognizer :

UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 2.0; //seconds
lpgr.delegate = self;
[self.myTableView addGestureRecognizer:lpgr];

Потом, в mГ©todo, что манипулирует long press :

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer {
    CGPoint p = [gestureRecognizer locationInView:self.myTableView];

    NSIndexPath *indexPath = [self.myTableView indexPathForRowAtPoint:p];
    if (indexPath == nil) {
        NSLog(@"long press on table view but not on a row");
    } else if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        NSLog(@"long press on table view at row %ld", indexPath.row);
    } else {
        NSLog(@"gestureRecognizer.state = %ld", gestureRecognizer.state);
    }
}

ты Должен быть осторожен, с которым это не вмешало с tap нормальные ячейки, и tambiГ©n ощущаться, что -handleLongPress: может взрываться несколько раз до того, как пользователь поднял палец.

1
ответ дан 24.11.2019, 14:41
  • 1
    Привет хорошие! Спасибо за вклад, но это Obj-C и я программирую в Свифте... и #191; Какой-то другой soluci и # 243; n? – Javi Rando 28.03.2016, 18:33
  • 2
    @JaviRando не быть должным и # 237; чтобы быть dif и # 237; cil переводить это в Свифта, c и # 243; я говорю, что это тот же самый, но меняет синтаксис... и #191; Цюй и # 233; трудность ты имел, переместив это Свифта? – Marcos Crispino 28.03.2016, 20:08