iOS10.3中劃線失效
阿新 • • 發佈:2019-01-23
NSString *price = @"¥12.3 ¥23.4";//[NSString stringWithFormat: @"¥%@ ¥%@ %@",goodsItemPrice,goodsItemOriginPrice,numByUserStr] ; NSMutableAttributedString *currentPriceStr = [[NSMutableAttributedString alloc] initWithString:price]; [currentPriceStr addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13],NSForegroundColorAttributeName:[UIColor blackColor]} range:NSMakeRange(0, 5)]; [currentPriceStr addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12],NSForegroundColorAttributeName:[UIColor greenColor]} range:NSMakeRange(6, 5)]; [currentPriceStr addAttributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle)} range:NSMakeRange(6, 5)]; self.goodsPrice.attributedText = currentPriceStr;
上面一段程式碼原本是有後麵價格是有中劃線的,但是到iOS10.3就無效了。
後測試發現:
1、字串中有中文字元就會設定失效;
2、對字串部分設定中劃線也失效了。
修復:
方法一、假如對一整段設定中劃線,只要沒有中文字串就行,用“¥”替代“¥”。
方法二、這個比較通用,不管有沒有中文還是部分字串設定都可以的,增加一個富文字屬性: NSBaselineOffsetAttributeName : @(NSUnderlineStyleSingle)