ios cocoa-touch text uilabel underline

ios - ¿Cómo hacer un texto subrayado en UILabel?



cocoa-touch underline (6)

The Designer Way - Versión altamente personalizable

Personalmente prefiero personalizar mi diseño (s) tanto como sea posible. A veces, encontrará que usar la herramienta de subrayado integrada no es fácilmente personalizable.

Así es como lo hago:

1 Primero creo una UIView para el subrayado. A continuación, puede elegir su color de fondo, ya sea en IB o mediante programación. Las restricciones son clave aquí.

2 Luego, puede personalizar el subrayado tanto como desee. Por ejemplo, para adaptar el ancho del subrayado para un mejor efecto visual, cree una conexión de salida a una restricción en Interface Builder.

3 A continuación, puede personalizar fácilmente su vista de subrayado mediante programación. Por ejemplo, para hacerte una idea, haremos que el subrayado sea 20 px más amplio que el título "Panes":

var originalString: String = "Breads" let myString: NSString = originalString as NSString let size: CGSize = myString.size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 14.0)]) self.widthUnderlineTitle.constant = size.width + 20

Resultados:

¿Cómo puedo hacer un texto subrayado en UILabel ?

Lo intenté haciendo una UILabel con altura 0.5f y la coloqué debajo del texto. Esta etiqueta de línea no está visible cuando estoy ejecutando mi aplicación en el simulador de iPhone 4.3 y iPhone 4.3 , pero está visible en el simulador de iPhone 5.0 en adelante. ¿Por qué?

¿Cómo puedo hacer esto?


C objetivo

iOS 6.0> versión

UILabel admite NSAttributedString

NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Hello Good Morning"]; [attributeString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:1] range:(NSRange){0,[attributeString length]}];

Rápido

let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Hello Good Morning") attributeString.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: NSMakeRange(0, attributeString.length))

Definición :

- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)aRange

Parameters List:

nombre : una cadena que especifica el nombre del atributo. Las claves de atributo pueden ser suministradas por otro marco o pueden ser personalizados que usted defina. Para obtener información sobre dónde encontrar las claves de atributo proporcionadas por el sistema, consulte la sección de descripción general en Referencia de clase NSAttributedString.

valor : el valor del atributo asociado con el nombre.

aRange : el rango de caracteres al que se aplica el par atributo / valor especificado.

Ahora usa esto:

yourLabel.attributedText = [attributeString copy];

iOS 5.1.1 <versión

Necesita 3 party attributed Label para mostrar attributed text :

1) Consulte el enlace TTTAttributedLabel . Su mejor Label terceros attributed para display text atribuido.

2) refiere a OHAttributedLabel para Label attributed terceros


Eche un vistazo a TTTAttributedLabel . Si tiene permiso para usar componentes de terceros, simplemente reemplace sus UILabels con TTTAttributedLabel donde lo necesite (reemplazo inmediato). Funciona con iOS <6.0!


Estoy usando Xcode 9 y iOS 11. Para hacer el UILabel con un subrayado debajo. Puede usar ambos 1. Usando el código 2. Usando xib

Usando el código:

NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"I am iOS Developer"]; [attributeString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:1] range:(NSRange){0,[attributeString length]}]; lblAttributed.attributedText = attributeString;

Usando Xib:

También podemos usar el botón para.


Extensión Swift en UILabel:

Aún necesita mejorar, cualquier pensamiento es bienvenido:

extension UILabel{ func underLine(){ if let textUnwrapped = self.text{ let underlineAttribute = [NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue] let underlineAttributedString = NSAttributedString(string: textUnwrapped, attributes: underlineAttribute) self.attributedText = underlineAttributedString } } }

Una de las desventajas que se me ocurre en este momento es que tendrá que ser llamada cada vez que cambie el texto, y no hay una forma real de apagarlo ...


Swift 4.0

var attributeString = NSMutableAttributedString(string: "Hello Good Morning") attributeString.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: NSRange)