UILabel Text Strikethrough с цветом

Я использую следующий код для прокрутки текста

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

label.attributedText = attributeString;

Текст имеет белый цвет, поэтому строка зачеркивания также белая. Я хотел бы изменить это на красный. Как я могу это сделать?

Ответ 2

Добавить атрибут "NSStrikethroughColorAttributeName" в строку

[attributedString addAttributes:@{NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle)
                              , NSStrikethroughColorAttributeName: [UIColor redColor]
                              , NSBackgroundColorAttributeName: [UIColor yellowColor]}

Документация здесь

Ответ 3

SWIFT 3.x

Чтобы зачеркнуть текстовую метку цветом, вам нужно 2 атрибута, один для NSStrikethroughStyleAttributeName для NSStrikethroughColorAttributeName. Я считаю это более читаемым.

    let attributedString = NSMutableAttributedString(string: "0,91 €")
    attributedString.addAttribute(NSStrikethroughStyleAttributeName, value: NSNumber(value: NSUnderlineStyle.styleSingle.rawValue), range: NSMakeRange(0, attributedString.length))
    attributedString.addAttribute(NSStrikethroughColorAttributeName, value: UIColor.red, range: NSMakeRange(0, attributedString.length))

Ответ 4

В Swift:

attributeString.addAttribute(NSStrikethroughColorAttributeName, value: UIColor.redColor(), range: NSMakeRange(0, attributeString.length))