Comment puis-je insérer une image Inline UILabel dans iOS 8 à l'aide de swift
J'ai suivi le post suivant sur la façon d'utiliser NSTextAttachment pour ajouter des images en ligne avec votre UILabels. J'ai suivi le mieux que je pouvais et écrit ma version de Swift.
Je suis entrain de créer une application de chat et le champ que je suis l'insertion d'une icône de la bière en ne rend pas l'image ou ne semble pas pour le rendu de l'image en ligne. Je ne reçois pas toutes les erreurs, donc je suis en supposant que je suis en manque quelques petits détails dans mon code.
var beerName:String!
if(sender == bn_beer1)
{
beerName = "beer1.png"
}
if(sender == bn_beer2)
{
beerName = "beer2.png"
}
if(sender == bn_beer3)
{
beerName = "beer3"
}
var attachment:NSTextAttachment = NSTextAttachment()
attachment.image = UIImage(named: beerName)
var attachmentString:NSAttributedString = NSAttributedString(attachment: attachment)
var myString:NSMutableAttributedString = NSMutableAttributedString(string: inputField.text)
myString.appendAttributedString(attachmentString)
inputField.attributedText = myString;
- Quelle est la taille de l'image?
InformationsquelleAutor mattwallace | 2014-11-04
Vous devez vous connecter pour publier un commentaire.
Cela ne fonctionne pas sur un objet UITextField. Il ne fonctionne que sur un UILabel.
Ici est un UILabel extension dépend de votre code (Swift 2.0)
EDIT:
voici une nouvelle version qui permet d'ajouter l'icône avant ou après l'étiquette. Il y a aussi une fonction pour supprimer l'icône de l'étiquette
Regis St-Gelais, de l'extension de réponse pour Swift 3 et Swift 4 et sans forcé déballage:
Utilisation:
google NSMutableAttributedString image position
1er trois résultats vous expliquer tout ce que vous devez savoir. vous devez apprendre à google. super importantModifier 19/03/18 : correction d'un bug lors de la imageBehindText = false + taille de l'Image en pixel aucun point.
David de la fonction de mise à jour pour plusieurs des images avec d'enregistrement du texte et la taille de l'image basée sur la taille de la police (Swift 4) :