J'ai rencontré un bug étrange dans Latest Xcode 11.0 Mon code:
let button = ASAuthorizationAppleIDButton(type: .default, style: .black)
button.translatesAutoresizingMaskIntoConstraints = false
button.cornerRadius = 10
button.addTarget(self, action: #selector(appleSignInButtonSelected(_:)), for: .touchUpInside)
Le sélecteur n'a jamais appelé, mais si je change d'événement en touchDown, tout fonctionne.
J'ai rencontré le même problème. Dans mon cas, j'ai eu UITapGestureRecognizer
attaché à la vue principale du contrôleur de vue. La définition de la propriété cancelsTouchesInView
du module de reconnaissance de gestes sur false a aidé.
Je pense que c'est Apple bug. Utilisez touchDown au lieu de touchUpInside.
J'ai constaté que le ASAuthorizationAppleIDButton
ne recevait aucun geste de prise (down
ou upInside
) s'il y avait un problème de mise en page avec son parent.
Dans mon cas, j'avais omis une contrainte dans l'une des vues parent, ce qui faisait que ASAuthorizationAppleIDButton
se trouvait en dehors du cadre de la vue parent.
C'était dans un storyboard, donc il y avait une flèche rouge et un avertissement à ce sujet, mais je l'avais manqué au départ. J'ai trouvé cela en déboguant la hiérarchie des vues et en notant la position de chacune des vues d'ancêtre dans l'arborescence.
Le correctif consiste à s'assurer qu'il existe des contraintes pour garder le ASAuthorizationAppleIDButton
dans le cadre de ses ancêtres.