Как добавить интервал к строкам в NSAttributedString
Я создаю приложение, которое форматирует сценарии, я использую NSAttributedString для форматирования текста, введенного в UITextView, но некоторые из строк слишком близки.
Мне было интересно, может ли кто-нибудь предоставить пример кода или подсказку о том, как изменить границу между этими строками, чтобы между ними было больше места.
Ниже приведено изображение другой программы сценария для рабочего стола, которая демонстрирует, что я имею в виду, обратите внимание на то, что перед каждым битом есть немного места, где говорится "ДОРОТИ".
![enter image description here]()
Ответы
Ответ 1
В следующем примере кода используется стиль абзаца для настройки расстояния между абзацами текста.
UIFont *font = [UIFont fontWithName:fontName size:fontSize];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.paragraphSpacing = 0.25 * font.lineHeight;
NSDictionary *attributes = @{NSFontAttributeName:font,
NSForegroundColorAttributeName:[UIColor whiteColor],
NSBackgroundColorAttributeName:[UIColor clearColor],
NSParagraphStyleAttributeName:paragraphStyle,
};
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
Чтобы выборочно отрегулировать интервал для определенных абзацев, примените стиль абзаца только к этим абзацам.
Надеюсь, что это поможет.
Ответ 2
Отличный ответ @Joe Smith
Если кто-то захочет посмотреть, как это выглядит в Swift 2. *:
let font = UIFont(name: String, size: CGFloat)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.paragraphSpacing = 0.25 * font.lineHeight
let attributes = [NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle]
let attributedText = NSAttributedString(string: String, attributes: attributes)
self.textView.attributedText = attributedText