web-dev-qa-db-fra.com

Formater le texte dans UITextView

Je crée une "page à propos" pour mon application et je dois coller une énorme quantité de texte sur cette page (le texte ne sera pas éditable).

J'utilise une UITextView à cette fin. Cependant, il me faut des mots en gras (comme les titres). Mais je ne suis pas capable d'y parvenir. La UITextView supprime toute ma mise en forme.

Je n'ai pas de code à afficher ici car je colle tout mon texte dans l'IB uniquement.

Y at-il une solution de contournement? Par exemple .. Je veux le titre en gras ..

" À propos de ABC Corporation

gkskgsagdfgfskgfjkgfgljdgsfjgdsjfgdjlsgflgdslgfljdsgfljgdsjlgfljdsgfljdgslfgls.
jdfjkhdsjlfhdlsfhkldshfkldshflkdhlkfhdklsfhlksdhflkdshflkhdsflkhsdklfhlksdhflkshf

fjhdshfkldshfkldhsfklhdsklfhlkdshfklhdsklfhdklsfhkdshfklhdsklfhklsdfhkldshfkhdsklf

fhjdgfkdgsjkfgjkdsgfjkdsgjfgjdkgfjgsjdfgjkdsgfjkgsdjkfgjsdgfjgsdjkfgjksdgfjkgskjfgs"
12
Shradha

D'abord, conservez la propriété textuelle de textView sous la forme 'Attributed'. Ensuite, sélectionnez simplement le texte et modifiez son style et sa police comme vous le souhaitez.

P.S. - Tout ce que vous avez à faire est dans le panneau Inspecteur d'attributs de IB.

EDIT:

Pour plus, visitez ce lien .

Aussi , c’est très bien surtout lorsque les textField ont un texte qui ne changera pas, par exemple. - comme sur info. Et lorsque ce texte est inséré directement dans IB au lieu d’attribuer du texte par programmation. 

9
Nayan

Vous pouvez utiliser NSAttributedString, Définir la police du texte, les couleurs de premier plan et d'arrière-plan, StrikeThrough et Ombre, etc.

Les chaînes attribuées établissent une association entre les caractères et leurs attributs. Comme pour les objets NSString, il existe deux variantes, NSAttributedString et NSMutableAttributedString. Bien que les versions précédentes de iOS prennent en charge les chaînes attribuées, ce n’est que iOS 6 que des contrôles tels que des boutons, des étiquettes, des champs de texte et des vues de texte ont défini une propriété permettant de gérer les attributs. Les attributs étant appliqués à une plage de caractères, vous pouvez par exemple définir un attribut strikethrough pour seulement une partie d'une chaîne. Il est également important de noter que la police par défaut pour les objets chaîne attribués est Helvetica 12 points. Gardez cela à l'esprit si vous définissez l'attribut font pour une plage autre que la chaîne complète. Les attributs suivants peuvent être définis avec des chaînes attribuées:

NSString *const NSFontAttributeName;
NSString *const NSParagraphStyleAttributeName;
NSString *const NSForegroundColorAttributeName;
NSString *const NSBackgroundColorAttributeName; 
NSString *const NSLigatureAttributeName;
NSString *const NSKernAttributeName;
NSString *const NSStrikethroughStyleAttributeName;
NSString *const NSUnderlineStyleAttributeName; 
NSString *const NSStrokeColorAttributeName;
NSString *const NSStrokeWidthAttributeName;
NSString *const NSShadowAttributeName; 
NSString *const NSVerticalGlyphFormAttributeName;



 // Create attributed string
 NSString *str = @"example for underline \nexample for font \nexample for bold \nexample for italics"; 

 NSMutableAttributedString *attributedString =
 [[NSMutableAttributedString alloc] initWithString:str];

 // Add attribute NSUnderlineStyleAttributeName 
 [attributedString addAttribute:NSUnderlineStyleAttributeName 
                   value:[NSNumber numberWithInt:NSUnderlineStyleSingle] 
                   range:NSMakeRange(12, 9)];
 [attributedString addAttribute:NSUnderlineStyleAttributeName
                   value:[NSNumber numberWithInt:NSUnderlineStyleSingle]
                   range:NSMakeRange(12, 9)];

 // Set background color for entire range
 [attributedString addAttribute:NSBackgroundColorAttributeName
                   value:[UIColor yellowColor]
                   range:NSMakeRange(0, [attributedString length])];


 // Create NSMutableParagraphStyle object
 NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
 paragraph.alignment = NSTextAlignmentCenter;

 // Add attribute NSParagraphStyleAttributeName
 [attributedString addAttribute:NSParagraphStyleAttributeName 
                   value:paragraph
                   range:NSMakeRange(0, [attributedString length])];



 // Set font, notice the range is for the whole string
 UIFont *font = [UIFont fontWithName:@"Helvetica" size:18]; 
 [attributedString addAttribute:NSFontAttributeName 
                   value:font
                   range:NSMakeRange(35, 4)];



 // Set font, notice the range is for the whole string
 UIFont *fontBold = [UIFont fontWithName:@"Helvetica-Bold" size:18];
 [attributedString addAttribute:NSFontAttributeName 
                   value:fontBold 
                   range:NSMakeRange(53, 4)];

 // Set font, notice the range is for the whole string 
 UIFont *fontItalics = [UIFont fontWithName:@"Helvetica-Oblique" size:18];
 [attributedString addAttribute:NSFontAttributeName 
                   value:fontItalics
                   range:NSMakeRange(71, 7)];



 // Set label text to attributed string
 [self.mytextView setAttributedText:attributedString];
5
Arun Kumar

Vous pouvez utiliser NSMutableAttributedString pour prendre en charge la propriété multi-attributs de votre chaîne.
Remarque : - NSMutableAttributedString est disponible sous iOS 6.0 ou version ultérieure. 
Modifier:-
Vérifiez ceci: - Comment créer un UILabel ou un UITextView avec du texte normal et gras?

1
Piyush Dubey
1
Ossir

le SDK iOS a inclus un kit de texte. iOS 7 offre la possibilité d’améliorer la lisibilité du texte en augmentant l’épaisseur de police, ainsi qu’une option permettant de définir la taille de police préférée pour les applications prenant en charge le texte dynamique. Les utilisateurs s'attendent à ce que les applications écrites pour iOS7 respectent ces paramètres. Par conséquent, ignorez-les à vos risques et périls! Pour utiliser le type dynamique, vous devez spécifier les polices à l'aide de styles plutôt que d'indiquer explicitement le nom et la taille de la police. Avec iOS 7, une nouvelle méthode a été ajoutée à UIFont, preferredFontForTextStyle, qui crée une police pour le style donné à l’aide des préférences de police de l’utilisateur.

Voici un excellent tutoriel sur un site Web génial Ray wenderlich tutoriel kit de texte

Si vous avez le temps, regardez la session vidéo WWDC 2013 201

0
Prince Agrawal