6
votes

Glisser les gestes de gauche sur uitextfield

J'ai uitéxfields dans TableViewCells. Lorsque vous faites glisser sur la cellule ne faisant pas partie du champ de texte, l'action de suppression apparaît comme prévu. Si vous faites glisser sur le champ de texte, il arrête la suppression de l'apparition.

Comment puis-je résoudre ce problème pour que vous puissiez glisser sur les entrées et que la cellule déclenchera l'action Supprimer?


3 commentaires

Avez-vous résolu ce problème?


Non. J'ai repensé l'interface autour de la question.


Essayez d'ajouter - (void) TableView: (Uitailview *) TableViewstyle: (UitailViewCelleditStyle) EditingStyle ForrowaDexPath: (NsindexPath *) IndustryPath. Ça marche le charme de mensonge


3 Réponses :


1
votes

On dirait que vous devez définir la propriété CancelStoucheView code> Propriété

yourGestureRecognizer.cancelsTouchesInView = NO;


0 commentaires

2
votes

Je pense que le problème ici est que la touche sur le champ de texte interfère avec votre reconnaissance de geste de balayage (vraisemblablement attaché à la vue parent). J'ai eu un problème similaire avec un champ de texte placé dans un Uiscrollview.

J'ai eu autour de ce problème en superposant un UIView clair sur mon Uitextfield. J'ai ensuite attribué à un UITAPGestReCognizer à cette vue claire pour définir le champ de texte comme premier répondant lorsque l'utilisateur tapote sur le champ. Sinon, le glissement est envoyé à la vue parent (une vue de défilement) qui reconnaît la balayage sans aucun problème. C'est une sorte de boiteux mais ça marche. P>

Ce scénario est un peu différent du tien, mais je pense que c'est le même problème. Voici ce que mon code ressemble, espérons-le, cela aide: p> xxx pré>

, puis dans le contrôleur: p>

- (void)viewDidLoad
{
    [super viewDidLoad];

    _addPageView = (LSAddPageView*)self.view;

    _maskGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapMask:)];
    _maskGestureRecognizer.numberOfTapsRequired = 1;
    _maskGestureRecognizer.numberOfTouchesRequired = 1;
    [_addPageView.textFieldMask addGestureRecognizer:_maskGestureRecognizer];

    self.textField.delegate = self; // Set delegate to be notified when text field resigns first responder
}

- (void)didTapMask:(UIGestureRecognizer*)recognizer
{
    _addPageView.textFieldMaskEnabled = NO;
    [self.textField becomeFirstResponder];
}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    _addPageView.textFieldMaskEnabled = YES;
    return YES;
}


0 commentaires

1
votes

de uibutton & uitextfield bloquera UitaiterViewCell étant glisser pour supprimer

self.tableView.panGestureRecognizer.delaysTouchesBegan = YES;


0 commentaires