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;