美文网首页
关于UIlabel添加删除线

关于UIlabel添加删除线

作者: 丶Honour | 来源:发表于2017-08-21 10:57 被阅读0次

首先感谢CoderAO分享的关于label删除线的方法,但是我在测试中发现,iOS10.3 NSStrikethroughStyleAttributeName 不起作用

经过测试发现含有中文字符不会显示删除线.

解决方法:

就是在后面增加一个富文本属性: NSBaselineOffsetAttributeName : @(NSUnderlineStyleSingle)

对于在label类的category中添加方法

- (void)drawRect:(CGRect)rect {

    [super drawRect:rect];
    // 取文字的颜色作为删除线的颜色
    [self.textColor set];
    CGFloat w = rect.size.width;
   //再iOS10.3和iOS10.3之前拿到的rect不一致,会导致删除线的位置有些差距,这里可以添加判断系统版本的语句进行处理。也可以直接将高度写死。
    CGFloat h = rect.size.height * 0.5;
    UIRectFill(CGRectMake(0, h, w, 1));
}
这两种方法进行对比:

1.以像iOS10.3以前那样使用,不管一行还是多行都会加删除线的。但是看上去没有方法二的视觉效果好。
2.label只显示一行的情况下,可以使用,多行就不能使用。但它的视觉效果要好点,删除线的位置也可以调整。
这个就看自己需求了,一般项目中画删除线也没多长.

相关文章

网友评论

      本文标题:关于UIlabel添加删除线

      本文链接:https://www.haomeiwen.com/subject/ablcdxtx.html