Te sugerimos que revises esta resolución en un ambiente controlado antes de enviarlo a producción, saludos.
Solución:
CÓDIGO DE ACTUALIZACIÓN SWIFT 4
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your Text")
attributeString.addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, attributeString.length))
entonces:
yourLabel.attributedText = attributeString
Para hacer una parte de string golpear y luego proporcionar rango
let somePartStringRange = (yourStringHere as NSString).range(of: "Text")
attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: somePartStringRange)
C objetivo
En iOS 6.0 >UILabel
apoya 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 : UN string especificando el attribute nombre. Atributo keys puede ser proporcionado por otro marco o puede ser uno personalizado que defina. Para obtener información sobre dónde encontrar el sistema suministrado attribute keysconsulte la sección de información general en NSAttributedString Class Reference.
valor : Él attribute valor asociado con el nombre.
aRango : El rango de caracteres al que se especifica attributeSe aplica el par /valor.
Entonces
yourLabel.attributedText = attributeString;
Para lesser than iOS 6.0 versions
necesitas 3-rd party component
para hacer esto. Uno de ellos es TTTAttributedLabel, otro es OHAttributedLabel.
En Swift, usando la enumeración para el estilo de línea 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 usando .rawValue):
- NSUnderlineStyle.StyleNone
- NSUnderlineStyle.StyleSingle
- NSUnderlineStyle.StyleThick
- NSUnderlineStyle.StyleDouble
Patrones tachados (para ser OR-ed con el estilo):
- NSUnderlineStyle.PatternDot
- NSUnderlineStyle.PatternDash
- NSUnderlineStyle.PatternDashDot
- NSUnderlineStyle.PatternDashDotDot
Especifique que el tachado solo se debe aplicar entre palabras (no espacios):
- NSUnderlineStyle.ByWord
yo prefiero NSAttributedString
en vez de NSMutableAttributedString
para este caso sencillo:
NSAttributedString * title =
[[NSAttributedString alloc] initWithString:@"$198"
attributes:@NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)];
[label setAttributedText:title];
Constantes para especificar tanto el NSUnderlineStyleAttributeName
y NSStrikethroughStyleAttributeName
attributes de un atribuido string:
typedef enum : NSInteger
NSUnderlineStyleNone = 0x00,
NSUnderlineStyleSingle = 0x01,
NSUnderlineStyleThick = 0x02,
NSUnderlineStyleDouble = 0x09,
NSUnderlinePatternSolid = 0x0000,
NSUnderlinePatternDot = 0x0100,
NSUnderlinePatternDash = 0x0200,
NSUnderlinePatternDashDot = 0x0300,
NSUnderlinePatternDashDotDot = 0x0400,
NSUnderlineByWord = 0x8000
NSUnderlineStyle;
Si sostienes algún recelo y disposición de refinar nuestro división puedes ejecutar un paráfrasis y con mucho gusto lo interpretaremos.