Comment attribuer une action pour UIImageView objet en Swift
Je suis en train d'affecter une UIImageView
à une action lorsque l'utilisateur appuie sur elle.
Je sais comment créer une action pour une UIButton
, mais comment pourrais-je imiter le même comportement d'un UIButton
, mais à l'aide d'un UIImageView
?
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'un
UITapGestureRecognizer
.Pour configurer l'utilisation de ce:
(Vous pourriez aussi utiliser un
UIButton
et appliquer une image, sans texte et qu'il suffit de connecter unIBAction
)@objc
modificateur de la fonction.Vous avez besoin d'ajouter un geste de reconnaissance (Pour sur utiliser les UITapGestureRecognizer, pour appuyez et maintenez sur l'utilisation UILongPressGestureRecognizer) à votre
UIImageView
.Et de mettre en Œuvre le sélecteur de méthode comme:
Vous pouvez ajouter un
UITapGestureRecognizer
à l'imageView, il suffit de glisser un dans votre table de montage séquentiel/xib, appuyez sur la touche Ctrl de l'imageView à la gestureRecognizer, et faites glisser la souris à partir de la gestureRecognizer à la Swift-fichier pour faire unIBAction
.Vous aurez également besoin de permettre les interactions de l'utilisateur sur le
UIImageView
, comme le montre cette image:UIImageView
ne répond pas à la touche par défaut. Vous devez également activer les interactions de l'utilisateur.Pour swift 2.0 et au-dessus de ce faire
Swift4 Code
Essayer ce quelques nouvelles méthodes d'extension:
Maintenant, chaque fois que nous voulons ajouter un
UITapGestureRecognizer
à unUIView
ouUIView
sous-classe commeUIImageView
, nous pouvons le faire sans la création de fonctions associées pour les sélecteurs de!Utilisation:
Vous pourrait en fait il suffit de régler l'image de la
UIButton
à ce que vous auriez normalement placer dans unUIImageView
. Par exemple, lorsque vous ferait:Vous pourriez utiliser:
Donc, voici ce que votre code pourrait ressembler à:
La grande chose au sujet de l'utilisation de cette méthode est que si vous devez charger l'image à partir d'une base de données, vous pouvez définir le titre du bouton avant de définir l'image:
À dire à vos utilisateurs que vous êtes le chargement de l'image
Vous pouvez mettre un
UIButton
avec un fond transparent sur le haut de laUIImageView
, et d'écouter un tap sur le bouton avant le chargement de l'imageSwift 4 Code
L'Étape 1 Dans Le ViewdidLoad()
Étape 2 Ajouter La Fonction Suivante
Il est Testé Et fonctionne Correctement
Je suggère à la place invisible(opacity = 0) bouton de votre imageview et ensuite gérer l'interaction sur le bouton.