2017-06-23 3 views
-1

J'ai le code suivant en Objective-C que j'ai besoin de convertir en Dwift.Le sélecteur de reconnaissance de gestes n'est pas déclenché lors de la traduction de initWithCoder: implémentation à Swift

- (instancetype)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 

     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)]; 
     [self addGestureRecognizer:tap]; 

    } 
    return self; 
} 

J'ai essayé l'approche suivante, mais le sélecteur ne reçoit pas déclenché:

required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 

     let x:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapped)) 
    } 

Quel est le problème ici?

Répondre

0

Votre code Objective-C appelle addGestureRecognizer. Votre code Swift ne le fait pas.

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 

    let x:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapped)) 
    addGestureRecognizer(x) 
} 
+0

Oui j'ai remarqué qu'après avoir tapé la question. Je l'accepterai de toute façon. Merci – user2511882