Wie kann ich einem NSAttributedString ein Textausrichtungsattribut hinzufügen, um den Text zu zentrieren?
Edit: Mache ich etwas falsch? Es scheint die Ausrichtung nicht zu ändern.
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
war damals unter iOS nicht verfügbar.Swift 4.2
quelle
NSTextAlignmentJustified
. Kannst du sagen warum? und wie kann ich die Ausrichtung als gerechtfertigt einstellen?NSTextAlignmentJustified
. Ist es ein iOS7-Fehler?NSBaselineOffsetAttributeName : @0
zu den Attributen Wörterbuch hinzu.NSAttributedString.alloc
. Übrigens, was zum Teufel ist das für eine Synthax ?Ich habe nach demselben Problem gesucht und konnte den Text in einem NSAttributedString folgendermaßen zentrieren:
quelle
NSMakeRange(0, [string length])
Repräsentiert die vollständige Zeichenfolge.Swift 4.0+
Swift 3.0+
(ursprüngliche Antwort unten)
Swift 2.0+
quelle
Swift 4 Antwort:
quelle
In schnell 4:
quelle
quelle