iOS学习笔记在iOS开发的道路上越走越远iOS精华

UILabel文字添加删除线

2015-05-08  本文已影响10163人  CoderAO
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补充

如果上面的方法有问题(虽然我没有遇到过问题),或者想换一种方式实现删除线,还可以采用以下方法:

- (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));
}
上一篇 下一篇

猜你喜欢

热点阅读