iOS 原价划线 解决线不直

2019-04-01  本文已影响0人  红太狼的小灰帽丶

今天写需求的时候遇到的一个需求是 把价钱的原价划掉
类似于这种样子的:


image.png

然后使用了以下方法:

     UILabel *originalPrice = [[UILabel alloc]init];  //原价
     originalPrice.font = [UIFont systemFontOfSize:16];
     originalPrice.textColor = kBLGray;
   NSDictionary *attribtDic =@{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]};
    NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString: self.Price attributes:attribtDic];
    originalPrice.attributedText = attribtStr;

然后发生了一件神奇的事情,出现了以下效果:


image.png

最后发现根本原因是Label上的文字只要包含有“中文”,富文本字符串的中划线就会很奇怪的出现不直啊或者设置了之后不起作用啊之类的效果,那么呢,我们就可以通过两种方式解决它~~~
第一个:人民币符号“¥”和“¥”,使用前面一个。
第二个:让富文本支持中文

    NSString *str = [NSString stringWithFormat:@"¥%@",@"999"];
    NSMutableAttributedString *attributeMarket = [[NSMutableAttributedString alloc] initWithString:str];
    [attributeMarket setAttributes:@{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle], NSBaselineOffsetAttributeName : @(NSUnderlineStyleSingle)} range:NSMakeRange(0,str.length)];
    originalPrice.attributedText = attributeMarket;
上一篇下一篇

猜你喜欢

热点阅读