Y at-il une méthode tactile pour UILabel?
-
27-10-2019 - |
Question
Je voudrais faire une action si quelqu'un touche un UILabel
prédéfinition, quelque chose comme:
if (label is touched) {
my actions;
}
Y at-il une méthode / façon de le faire?
La solution
Vous pouvez utiliser un geste de reconnaissance:
- (void)someSetupMethod {
// ...
label.userInteractionEnabled = YES;
UITapGestureRecognizer *tapGesture = \
[[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(didTapLabelWithGesture:)];
[label addGestureRecognizer:tapGesture];
[tapGesture release];
}
- (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture {
// ...
}
Autres conseils
Par défaut, UILabel
est pas configuré pour accepter une entrée tactile. Toutefois, si vous utilisez un UIButton
à la place et le mettre à avoir une apparence personnalisée, vous pouvez la faire ressembler à une étiquette (une seule ligne) et l'ont réagissent au toucher des événements.
Vous pouvez sous-classe et remplacer les méthodes tactiles. Vous voulez probablement override touchesEnded:withEvent:
.
Ou tout simplement utiliser un UIButton.
Vous devez vous assurer userinteractionenabled est réglé sur OUI et vous pouvez remplacer le touchesBegan:withEvent:
Juste Ajouter une catégorie pour la classe UILabel et ajoutez votre méthode pour elle.