Justifier le Texte dans UILabel iOS
J'ai un problème que sous iOS, je suis en utilisant UILabel pour afficher 2,3 ligne de texte, je veux aligner le texte comme justifiée, mais je ne parviens pas à trouver une option pour le faire. Des suggestions pour faire de justifier le texte dans l'étiquette?
j'ai mis ces ligne pour faire démarrer à partir du haut
CGSize maximumSize = CGSizeMake(300, 9999);
NSString *textString = someString;
UIFont *textFont = [UIFont fontWithName:@"Futura" size:14];
CGSize textStringSize = [textString sizeWithFont:textFont
constrainedToSize:maximumSize
lineBreakMode:text.lineBreakMode];
CGRect textFrame = CGRectMake(10, 110, 300, textStringSize.height);
text.frame = textFrame;
donc aucun truc de ce genre pour faire justfiy
Grâce
OriginalL'auteur Zaksh | 2011-08-22
Vous devez vous connecter pour publier un commentaire.
Il y a maintenant un moyen commode pour justifier le texte depuis iOS6. Vous pouvez créer une instance de NSAttributedString, définissez les propriétés appropriées et d'attribuer cette attribué chaîne de texte représentant de la vue tels que UILabel, UITextView, etc. C'est très simple:
Créer une instance de NSMutableParagraphStyle et définir ses propriétés.
Créer NSDictionary pour les attributs de texte et de créer attribué chaîne.
Ensemble attribuée chaîne à une étiquette.
Fonctionne comme un charme!! Merci!
OriginalL'auteur Peter Stajger
Ne peut pas être fait, je crains bien de ne pas avec UILabel.
Vous pouvez utiliser le UIWebView ou d'un 3ème partie de la bibliothèque comme OHAttributedLabel
Heureux De Codage 🙂
Mise à jour:
Cette réponse a été obsolètes depuis iOS6. Veuillez vous référer à Tankista de réponse.
OriginalL'auteur martin
Comme mentionné par @martin, ma classe OHAttributedLabel pouvez faire cela très facilement.
(Vous le trouverez sur mon github et aussi beaucoup de références à celui-ci en bien)
UITextAlignmentJustify
#define (qui est égal àkCTJustifiedTextAlignment
) vous pouvez utiliser pour appliquer l'alignement du texte sur votre NSAttributedString (à l'aide desetTextAlignment:lineBreakMode:
méthode de NSAttributedString+Attributs.h). Et si vous ne voulez pas que les liens soient cliquables, il y a aussi @property :automaticallyAddLinksForType=0
ne sera pas ajouter un lien sur ni Url, ni téléphones, ni quoi que ce soit.Depuis iOS6, il est préférable d'utiliser natif
UILabel
avecNSAttributedString
.Tout à fait d'accord (c'est pourquoi
OHAttributedLabel
est obsolète depuis un certain temps maintenant, d'ailleurs). Pour ceux que cela intéresse, j'ai extrait tous les portée de mainNSAttributedString
catégories dans mon nouveau OHAttributedStringAdditions pod maintenant, ce qui vous permet de manipulerNS(Mutable)AttributedString
plus facilement les objets (et est compatible avec iOS6+ et TextKit).OriginalL'auteur AliSoftware
Il peut être fait facilement, mais vous devez utiliser la Base de Texte.
la sous-classe des
UIView
, ajouter unNSString
propriété, créer unNSAttributedString
et passerkCTJustifiedTextAlignment
de la valeur pour l'kCTParagraphStyleSpecifierAlignment
clé, puis dessinez leNSAttributedString
à l'aide de Quartz ou de CoreText dans votre méthode drawrect.edit:
kCTParagraphStyleSpecifierAlignment
clékCTJustifiedTextAlignment
valeur doit être utilisée pour créer unCTParagraphStyleRef
struct et transmise comme valeur pourkCTParagraphStyleAttributeName
clé lors de la création de laNSAttributedString
.OriginalL'auteur Sepehr Mahmoudian
SWIFT 4.x
version approuvée de réponse:
Créer une instance de NSMutableParagraphStyle et définir ses propriétés.
Créer NSDictionary pour les attributs de texte et de créer attribué chaîne.
Ensemble attribuée chaîne à une étiquette.
OriginalL'auteur Argus