ios - Cómo agregar espacio a las líneas en NSAttributedString
swift 4 attributed string (3)
Estoy creando una aplicación que da formato a los juegos de pantalla, estoy usando una NSAttributedString para formatear el texto ingresado en un UITextView, pero algunas de las líneas están demasiado juntas.
Me preguntaba si alguien podría proporcionar un ejemplo de código o una sugerencia sobre cómo modificar el margen entre estas líneas para que haya más espacio entre ellas.
A continuación se muestra una imagen de otro programa de escritura de pantalla de escritorio que demuestra lo que quiero decir, observe cómo hay un poco de espacio antes de cada bit donde dice "DOROTHY".
Aquí está la versión Swift 4. *:
let string =
"""
A multiline
string here
"""
let font = UIFont(name: "Avenir-Roman", size: 17.0)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.paragraphSpacing = 0.25 * (font?.lineHeight)!
let attributes = [NSAttributedStringKey.font: font as Any, NSAttributedStringKey.paragraphStyle: paragraphStyle]
let attrText = NSAttributedString(string: string, attributes: attributes)
self.textView.attributedText = attrText
El siguiente código de ejemplo utiliza el estilo de párrafo para ajustar el espaciado entre párrafos de un texto.
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];
Para ajustar de forma selectiva el espacio para ciertos párrafos, aplique el estilo de párrafo solo a esos párrafos.
Espero que esto ayude.
Gran respuesta @Joe Smith
En caso de que alguien quisiera ver cómo se ve esto en 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