2017-04-24 46 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並且偏移屬性範圍包含該元素,它也會中斷(無刪除線)。我們將偏移量應用於字符串的部分以生成刪除線。

其他屬性 - 灰色和字體 - 不受影響。