Как добавить интервал к строкам в 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