2017-04-18 2 views
0

Est-il possible de créer du texte/une police avec une image et de l'utiliser comme partie d'une chaîne? Je voudrais afficher notre image de pièce de monnaie avant le montant dans les étiquettes, etc à divers endroits dans mon application. Ainsi, par exemple, au lieu de 4,00 $, ce serait mon image de monnaie personnalisée au lieu du signe $. Je me demande s'il y a de toute façon pour convertir notre image de la monnaie en quelque sorte d'un texte de police (comme ce que la police génial fait) et l'utiliser dans les chaînes.Incorporer une image dans le texte

Si ce n'est pas ce qui serait un bon moyen d'aborder cela, afin que nous puissions afficher des montants en devises partout dans notre application avec notre propre image de monnaie personnalisée? Une sorte d'étiquette personnalisée?

+1

Une police est techniquement une feuille de glyphe et des données associées stockées dans des tables pour aider avec des décalages, tailles, etc. Je suppose que vous * pourrait * créer une "police" qui a essentiellement un seul caractère et est redimensionnable, mais cela semble être beaucoup d'efforts. Une meilleure façon peut être de créer un emoji. (Peut-être, je n'en sais pas assez à ce sujet.) Si oui, c'est un caractère Unicode que vous pouvez utiliser comme texte. L'option la plus simple est de sous-classer UILabel, d'ajouter à la méthode * draw (rect:) * ce qui est nécessaire pour afficher votre image, puis de l'ajouter dans votre interface utilisateur. Oui, vous pouvez avoir un espace «leader» entre le montant et le montant, mais cela fonctionne. – dfd

Répondre

1

Vous pouvez utiliser un NSAttributeString pour y arriver avec un NSTextAttachment

let dollarImage = UIImage(named: "DollarSign") 

let attachment = NSTextAttachment() 
attachment.image = dollarImage 
attachment.bounds = CGRect(origin: .zero, size: dollarImage.size) 

let attachmentString = NSAttributedString(attachment: attachment) 
let currencyString = NSAttributedString(string: "4.40") 

let attributedString = NSMutableAttributedString(attributedString: attachmentString) 
attributedString.append(currencyString) 
+0

C'est une solution raisonnable, mais comment puis-je m'assurer que la hauteur de l'image s'aligne bien avec la hauteur du texte? – Prabhu

+0

La meilleure façon de concevoir votre image pour correspondre au texte que vous attendez. Inclure des espaces dans l'image si nécessaire. –

+0

Désolé, ne pas suivre ... comment incluez-vous les espaces dans l'image? – Prabhu