ios - añadir guiones en el salto de palabra en un UILabel
word-wrap hyphen (5)
A veces es crucial agregar una clave de atributo de locale
.
NSString *lorem = @"Lorem ipsum <et cetera>.";
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
paragraph.hyphenationFactor = 1;
paragraph.alignment = NSTextAlignmentJustified;
paragraph.lineBreakMode = NSLineBreakByWordWrapping;
self.label.attributedText = [[NSAttributedString alloc] initWithString:lorem attributes:@{
NSFontAttributeName: [UIFont preferredFontForTextStyle:UIFontTextStyleBody],
NSForegroundColorAttributeName: [UIColor darkGrayColor],
NSParagraphStyleAttributeName: paragraph,
@"locale": @"la", // Latin, use @"en-US" for American English, for example.
}];
¿Cómo configuro un lineBreakMode de UILabel para dividir palabras y agregar guiones a palabras rotas?
una etiqueta con un wo roto
rd debería verse así
Elaborando la respuesta de Matt aquí: https://.com/a/16502598/196358 puede hacerse usando NSAttributedString y NSParagraphStyle. Vea abajo:
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.hyphenationFactor = 1.0f;
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:titleString attributes:@{ NSParagraphStyleAttributeName : paragraphStyle }];
self.titleLabel.attributedText = attributedString;
Esto hará que la etiqueta se rompa en lugares lógicos a mitad de la palabra usando guiones. Se ve muy bien, y es bastante simple de hacer. Requiere iOS 6.0, pero solo lo he probado en 7.0.
No puedo eliminar esto como fue aceptado, pero estoy equivocado con el POV de hoy.
ANTIGUO UILabel no ofreció guiones.
HOY lo hace a través de NSAttributedString (ios6 +)
Swift 4.0
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.hyphenationFactor = 1.0
let hyphenAttribute = [
NSAttributedStringKey.paragraphStyle : paragraphStyle,
] as [NSAttributedStringKey : Any]
let attributedString = NSMutableAttributedString(string: "Your String", attributes: hyphenAttribute)
self.yourLabel.attributedText = attributedString
Swift 3.0
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.hyphenationFactor = 1.0
let attributedString = NSMutableAttributedString(string: “Your String”, attributes: [NSParagraphStyleAttributeName:paragraphStyle])
self.yourLabel.attributedText = attributedString
De storyboard