Jak mogę dodać atrybut wyrównania tekstu do NSAttributedString, aby wyśrodkować tekst?
Edycja: Czy robię coś złego? Wydaje się, że nie zmienia to wyrównania.
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
nie było wtedy dostępne na iOS.Swift 4.2
źródło
NSTextAlignmentJustified
. czy możesz powiedzieć dlaczego i jak ustawić wyrównanie jako uzasadnione?NSTextAlignmentJustified
. Czy to błąd iOS7?NSBaselineOffsetAttributeName : @0
do słownika atrybutów.NSAttributedString.alloc
?Szukałem tego samego problemu i byłem w stanie wyśrodkować tekst w NSAttributedString w ten sposób:
źródło
NSMakeRange(0, [string length])
Reprezentuje cały ciąg.Swift 4.0+
Swift 3.0+
(oryginalna odpowiedź poniżej)
Swift 2.0+
źródło
Odpowiedź Swift 4 :
źródło
W Swift 4:
źródło
źródło