Зачеркивание UILabel
-
20-08-2019 - |
Вопрос
Это возможно stikethrough
а UILabel
совсем?Никак не могу найти вариант...
Решение
Это старый вопрос, и доступна новая информация.
Начиная с iOS 6, у нас есть НСАтрибутедстринг.
Для версии до iOS 6 я бы посмотрел на ТТТАтрибутедлейбл
Другие советы
Вы можете создать еще одну UILabel над своей меткой и использовать символ тире:
label.text = @"––––––––––––––––––";
Предостережение:работает с Helvetica (по умолчанию).Он может не работать с другими шрифтами.
iPhone не поддерживает строки с атрибутами (обычно это делается в Cocoa), поэтому я не верю, что это возможно.
Вы могли бы создать подкласс UILabel
и нарисуйте strikethrough
сам.Я также видел, как некоторые люди использовали UIWebView
делать такие вещи, но мне это кажется излишним.
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 и стилизовать его с помощью свойств метки.
NSAttributedString *str=[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"¥%.2f", productOne.priceBefore] attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}];
cell.priceBefore.attributedText = str;