UILabel Strikethrough

时间:2009-06-28 06:38:51

标签: iphone cocoa-touch uilabel

是否可以stikethrough一个UILabel?我似乎无法找到选项......

5 个答案:

答案 0 :(得分:9)

这是一个老问题,可以获得更新的信息。

从iOS 6开始,我们有NSAttributedString

对于iOS 6之前的版本,我会查看TTTAttributedLabel

答案 1 :(得分:4)

您可以在标签上方创建另一个UILabel并使用短划线字符:

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

警告:适用于Helvetica(系统默认)。它可能无法与其他字体一起使用。

答案 2 :(得分:3)

iPhone不支持属性字符串(这通常是你在Cocoa中这样做的方式),所以我不相信它是可能的。

您可以继承UILabel并自己绘制strikethrough。我也看到有些人使用UIWebView来做这类事情,但这对我来说似乎有些过分。

答案 3 :(得分:1)

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上添加视图,并使用标签属性设置样式。

答案 4 :(得分:1)

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

cell.priceBefore.attributedText = str;