NSAttributedString *attrStr =
[[NSAttributedStringalloc]initWithString:_model.originPrice
attributes:
@{NSFontAttributeName:[UIFont systemFontOfSize:20.f],
NSForegroundColorAttributeName:[UIColor colorWithHexString:@"#5bcec0"],
NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle|NSUnderlinePatternSolid),
NSStrikethroughColorAttributeName:[UIColor colorWithHexString:@"#5bcec0"]}];
self.orginPriceLabel.attributedText = attrStr;
上面代码中给文字添加的四个特征分别是:文字大小,文字颜色,删除线样式为单实线,删除线的颜色
效果:(上文实现的是途中右侧带删除线的蓝色部分文字效果)
删除线效果.png
20150721补充
如果上面的方法有问题(虽然我没有遇到过问题),或者想换一种方式实现删除线,还可以采用以下方法:
- 创建一个UILabel的子类
- 在这个类内部实现
drawRect
方法将删除线绘制出来
- (void)drawRect:(CGRect)rect
{
// 调用super的drawRect:方法,会按照父类绘制label的文字
[super drawRect:rect];
// 取文字的颜色作为删除线的颜色
[self.textColor set];
CGFloat w = rect.size.width;
CGFloat h = rect.size.height;
// 绘制(这个数字是为了找到label的中间位置,0.35这个数字是试出来的,如果不在中间可以自己调整)
UIRectFill(CGRectMake(0, h * 0.35, w, 1));
}
- 需要使用删除线的部分用自定义的label初始化,按照正常label使用就好了.别忘了在给label赋值文字之后调用sizeToFit
网友评论