Comment puis-je ajouter un attribut d'alignement de texte à un NSAttributedString pour centrer le texte?
Edit: Est-ce que je fais quelque chose de mal? Cela ne semble pas changer l'alignement.
CTParagraphStyleSetting setting;
setting.spec = kCTParagraphStyleSpecifierAlignment;
setting.valueSize = kCTCenterTextAlignment;
CTParagraphStyleSetting settings[1] = {
{kCTParagraphStyleSpecifierAlignment, sizeof(CGFloat), &setting},
};
CTParagraphStyleRef paragraph = CTParagraphStyleCreate(settings, sizeof(setting));
NSMutableAttributedString *mutableAttributed = [[NSMutableAttributedString alloc] initWithAttributedString:self.attributedString];
[mutableAttributed addAttributes:[NSDictionary dictionaryWithObjectsAndKeys:(NSObject*)paragraph ,(NSString*) kCTParagraphStyleAttributeName, nil] range:_selectedRange];
NSParagraphStyle
n'étais pas disponible sur iOS à l'époque.Swift 4.2
la source
NSTextAlignmentJustified
. pouvez-vous dire pourquoi? et comment puis-je définir l'alignement comme justifié?NSTextAlignmentJustified
. Est-ce un bug iOS7?NSBaselineOffsetAttributeName : @0
au dictionnaire d'attributs.NSAttributedString.alloc
?Je cherchais le même problème et j'ai pu centrer le texte dans un NSAttributedString de cette façon:
la source
NSMakeRange(0, [string length])
Représente la chaîne complète.Swift 4.0+
Swift 3.0+
(réponse originale ci-dessous)
Swift 2.0+
la source
Réponse de Swift 4 :
la source
Dans Swift 4:
la source
la source