2017-04-24 47 views
0

我会问,然后回答我自己的问题,希望这会帮助别人。iOS 10.3.1更新打破了一些NSAttributedString属性?

我们的应用程序使用NSMutableAttributedString为我们字符串的某些部分定义删除线属性。

NSRange range = [fullString rangeOfString:product.originalDeal]; 
    [dealString addAttribute:NSFontAttributeName value:[UIFont fontWithSize:12] range:range]; 
    [dealString addAttribute:NSStrikethroughStyleAttributeName value:@1 range:range]; 
    [dealString addAttribute:NSStrikethroughColorAttributeName value:[UIColor grayColor] range:range]; 
    [dealString addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:range]; 

在iOS 10.3中,我们注意到删除线功能不再一致。有时它是存在的,有时它不存在。

问题:如何让删除线再次工作?

回答

0

下面是我们如何固定它:

[dealString addAttribute:NSBaselineOffsetAttributeName value:@(1) range:range]; 

在我们的属性列表的底部。这在iOS 10.3和10.2中克服了这个问题。

请注意,如果字符串包含元素\n并且偏移属性范围包含该元素,它也会中断(无删除线)。我们将偏移量应用于字符串的部分以生成删除线。

其他属性 - 灰色和字体 - 不受影响。