今天寫需求的時(shí)候遇到的一個(gè)需求是 把價(jià)錢的原價(jià)劃掉
類似于這種樣子的:
image.png
然后使用了以下方法:
UILabel *originalPrice = [[UILabel alloc]init]; //原價(jià)
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;
然后發(fā)生了一件神奇的事情腻豌,出現(xiàn)了以下效果:
image.png
最后發(fā)現(xiàn)根本原因是Label上的文字只要包含有“中文”护蝶,富文本字符串的中劃線就會(huì)很奇怪的出現(xiàn)不直啊或者設(shè)置了之后不起作用啊之類的效果侨颈,那么呢蹬挤,我們就可以通過兩種方式解決它~~~
第一個(gè):人民幣符號(hào)“¥”和“¥”揽惹,使用前面一個(gè)旭斥。
第二個(gè):讓富文本支持中文
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;