attributed ios nsattributedstring

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