Comment faire de l'URL/Téléphone cliquable UILabel?
Je veux créer un lien d'étiquette sur mon appli m'a conduit à un Safari de la page web. Je tiens également à l'utilisateur d'être en mesure de téléphone les numéros en cliquant sur eux ?
Merci pour vos conseils
- Double Possible de Créer appuyez sur-mesure "liens" dans la NSAttributedText d'un UILabel?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
UITextView
et sélectionnez Détection pour les Liens, Numéros de Téléphone et d'autres choses dans l'inspecteur.Utilisation
UITextView
au lieu deUILabel
et il possède une propriété de convertir votre texte en lien hypertexte.Objective-C:
Swift:
Cela permet de déceler automatiquement les liens.
Voir la documentation pour plus de détails.
https://github.com/mattt/TTTAttributedLabel
C'est certainement ce dont vous avez besoin. Vous pouvez également appliquer des attributs de votre étiquette, comme le soulignent, et d'appliquer des couleurs différentes pour elle. Il suffit de consulter les instructions pour les adresses url cliquable.
Surtout, vous faire quelque chose comme ce qui suit:
let range = (label.text as NSString).rangeOfString("me")
Vous pouvez faire de la coutume UIButton et setText ce que jamais tu veux et ajouter une méthode avec qui.
Si vous voulez que ce soit gérée par UILabel et pas UITextView, vous pouvez faire UILabel sous-classe, comme celui-ci:
Cette classe a été faite par la réutilisation de code à partir de ce réponse. Afin de rendre attribué chaînes découvrez ce réponse. Et ici vous pouvez trouver comment faire de téléphone url.
Utilisation UITextView au lieu de UILabel et il possède une propriété de convertir votre texte en lien hypertexte
Code Swift:
Utiliser ce que j'aimais tellement depuis crée un lien avec le bleu de la couleur à un texte particulier seulement pas sur l'ensemble du texte de l'étiquette: FRHyperLabel
À faire:
Télécharger à partir du lien ci-dessus et copier
FRHyperLabel.h
,FRHyperLabel.m
à votre projet.De glisser /déposer
UILabel
dans votreStoryboard
et de définir un nom de classe àFRHyperLabel
en identifier l'inspecteur, comme indiqué dans l'image.@property (weak, nonatomic) IBOutlet FRHyperLabel *label;
`NSString *string = @"En téléchargeant j'accepte les Conditions d'Utilisation";
NSDictionary *attributs = @{NSFontAttributeName: [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline]};
Swift 4.2, Xcode version 9.3
Swift 4.0 solution possible à l'aide de UIButton