CoreText Выравнивание текста по горизонтали по центру - PullRequest
1 голос
/ 17 марта 2012

Я использую CoreText и хочу сделать так, чтобы мой NSMutableAttributedString всегда по центру выравнивал текст. Это код, который я использую, и он не работает:

CTTextAlignment paragraphAlignment = kCTCenterTextAlignment;
    CTParagraphStyleSetting paragraphSettings[1] = {{kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &paragraphAlignment}};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphSettings, 1);

text = [[NSMutableAttributedString alloc] initWithString:@"" attributes:[NSDictionary dictionaryWithObjectsAndKeys: (id)paragraphStyle, (NSString*)kCTParagraphStyleAttributeName, nil]];

Кто-нибудь знает, как это сделать правильно?

1 Ответ

0 голосов
/ 10 апреля 2017

Другое решение без использования CoreText, если ваше приложение совместимо с 10.10 или выше, это использование NSParagraphStyle.

NSMutableParagraphStyle *rectStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy;
rectStyle.lineBreakMode = NSLineBreakByClipping;
rectStyle.alignment = NSTextAlignmentCenter;

NSMutableAttributedString *att = [[NSMutableAttributedString alloc] initWithString:myText attributes:@{NSParagraphStyleAttributeName : rectStyle}];
...