UILabel Strikethrough

Возможно ли вообще stikethrough a UILabel? Кажется, я не могу найти вариант...

Ответ 1

Это старый вопрос и более новая информация доступна.

Начиная с iOS 6, NSAttributedString.

Для pre iOS 6 я бы посмотрел на TTTAttributedLabel

Ответ 2

Вы можете создать еще один UILabel над своей меткой и использовать символ en dash:

label.text = @"––––––––––––––––––";

Caveat: работает с Helvetica (по умолчанию по умолчанию). Он может не работать с другими шрифтами.

Ответ 3

iPhone не поддерживает атрибутированные строки (как правило, вы делаете это в Cocoa), поэтому я не считаю возможным.

Вы можете подклассифицировать UILabel и нарисовать strikethrough самостоятельно. Я также видел, что некоторые люди используют UIWebView для выполнения этого типа вещей, но для меня это кажется излишним.

Ответ 4

UIView* slabel = [[UIView alloc] initWithFrame:CGRectMake(label.frame.origin.x, label.frame.origin.y+10, label.frame.size.width, 2)];
[self addSubview:slabel];
[slabel setBackgroundColor:label.textColor];

Вы можете добавить представление по UILabel и создать его с помощью свойств метки.

Ответ 5

NSAttributedString *str=[[NSMutableAttributedString alloc]  initWithString:[NSString stringWithFormat:@"¥%.2f", productOne.priceBefore]  attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}];

cell.priceBefore.attributedText = str;