trucos texto tachar tachado para los letra formato estados estado escribir como cambiar ios swift cocoa-touch uilabel strikethrough

ios - texto - trucos para cambiar la letra en whatsapp



UILabel con texto tachado (12)

En Swift, usando la enumeración para el estilo de línea de tachado único:

let attrString = NSAttributedString(string: "Label Text", attributes: [NSStrikethroughStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue]) label.attributedText = attrString

Estilos de tachado adicionales ( Recuerde acceder a la enumeración utilizando .rawValue ):

  • NSUnderlineStyle.StyleNone
  • NSUnderlineStyle.StyleSingle
  • NSUnderlineStyle.StyleThick
  • NSUnderlineStyle.StyleDouble

Patrones de tachado (para ser OR-ed con el estilo):

  • NSUnderlineStyle.PatternDot
  • NSUnderlineStyle.PatternDash
  • NSUnderlineStyle.PatternDashDot
  • NSUnderlineStyle.PatternDashDotDot

Especifique que el tachado solo debe aplicarse a través de palabras (no espacios):

  • NSUnderlineStyle.ByWord

Quiero crear un UILabel en el que el texto sea así

¿Cómo puedo hacer esto? Cuando el texto es pequeño, la línea también debe ser pequeña.


Golpea el texto de UILabel en Swift iOS. Por favor, intente esto, me está funcionando

let attributedString = NSMutableAttributedString(string:"12345") attributedString.addAttribute(NSAttributedStringKey.baselineOffset, value: 0, range: NSMakeRange(0, attributedString.length)) attributedString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: NSNumber(value: NSUnderlineStyle.styleThick.rawValue), range: NSMakeRange(0, attributedString.length)) attributedString.addAttribute(NSAttributedStringKey.strikethroughColor, value: UIColor.gray, range: NSMakeRange(0, attributedString.length)) yourLabel.attributedText = attributedString

Puede cambiar su estilo "estilo tachado" Estilo simple, estiloTráfilo, doble


Para aquellos que enfrentan problemas con la huelga de texto de varias líneas

let attributedString = NSMutableAttributedString(string: item.name!) //necessary if UILabel text is multilines attributedString.addAttribute(NSBaselineOffsetAttributeName, value: 0, range: NSMakeRange(0, attributedString.length)) attributedString.addAttribute(NSStrikethroughStyleAttributeName, value: NSNumber(value: NSUnderlineStyle.styleSingle.rawValue), range: NSMakeRange(0, attributedString.length)) attributedString.addAttribute(NSStrikethroughColorAttributeName, value: UIColor.darkGray, range: NSMakeRange(0, attributedString.length)) cell.lblName.attributedText = attributedString


Para cualquiera que esté buscando cómo hacer esto en una celda de vista de tabla (Swift), debe establecer el texto de .attribute de esta manera:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("TheCell")! let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: message) attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length)) cell.textLabel?.attributedText = attributeString return cell }

Si quieres eliminar el tachado hazlo, de lo contrario se quedará!

cell.textLabel?.attributedText = nil


Prefiero NSAttributedString lugar de NSMutableAttributedString para este caso simple:

NSAttributedString * title = [[NSAttributedString alloc] initWithString:@"$198" attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}]; [label setAttributedText:title];

Constantes para especificar los NSUnderlineStyleAttributeName y NSStrikethroughStyleAttributeName de una cadena atribuida:

typedef enum : NSInteger { NSUnderlineStyleNone = 0x00, NSUnderlineStyleSingle = 0x01, NSUnderlineStyleThick = 0x02, NSUnderlineStyleDouble = 0x09, NSUnderlinePatternSolid = 0x0000, NSUnderlinePatternDot = 0x0100, NSUnderlinePatternDash = 0x0200, NSUnderlinePatternDashDot = 0x0300, NSUnderlinePatternDashDotDot = 0x0400, NSUnderlineByWord = 0x8000 } NSUnderlineStyle;


Puede hacerlo en iOS 6 usando NSMutableAttributedString.

NSMutableAttributedString *attString=[[NSMutableAttributedString alloc]initWithString:@"$198"]; [attString addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInt:2] range:NSMakeRange(0,[attString length])]; yourLabel.attributedText = attString;


Tachado en Swift 4.0

let attributeString = NSMutableAttributedString(string: "Your Text") attributeString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: NSUnderlineStyle.styleSingle.rawValue, range: NSMakeRange(0, attributeString.length)) self.yourLabel.attributedText = attributeString

Me funcionó como un encanto.


CÓDIGO SWIFT

let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your Text") attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))

entonces:

yourLabel.attributedText = attributeString

Gracias a la respuesta de Prince ;)


CÓDIGO SWIFT

let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your Text") attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))

entonces:

yourLabel.attributedText = attributeString

Para hacer que una parte de la cuerda ataque, entonces proporcione el rango

let somePartStringRange = (yourStringHere as NSString).range(of: "Text") attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: somePartStringRange)

C objetivo

En iOS 6.0> UILabel admite NSAttributedString

NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"]; [attributeString addAttribute:NSStrikethroughStyleAttributeName value:@2 range:NSMakeRange(0, [attributeString length])];

Rápido

let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your String here") attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, 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.

Entonces

yourLabel.attributedText = attributeString;

Para lesser than iOS 6.0 versions necesita 3-rd party component para hacer esto. Uno de ellos es TTTAttributedLabel , otro es OHAttributedLabel .


Crear extensión de cadena y agregar método debajo

static func makeSlashText(_ text:String) -> NSAttributedString { let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: text) attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length)) return attributeString }

luego, úsela para su etiqueta como esta

yourLabel.attributedText = String.makeSlashText("Hello World!")


SWIFT 4

let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your Text Goes Here") attributeString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: 0, range: NSMakeRange(0, attributeString.length)) self.lbl_productPrice.attributedText = attributeString


Use el código a continuación

NSString* strPrice = @"£399.95"; NSMutableAttributedString *titleString = [[NSMutableAttributedString alloc] initWithString:strPrice]; [finalString addAttribute: NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger: NSUnderlineStyleSingle] range: NSMakeRange(0, [titleString length])]; self.lblOldPrice.attributedText = finalString;