0

我要问,然后回答我自己的问题,希望这会对某人有所帮助。

我们的应用程序曾经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 中,我们注意到删除线功能不再持续出现。有时它存在,有时它不存在。

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

4

1 回答 1

0

以下是我们修复它的方法:

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

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

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

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

于 2017-04-24T18:41:06.067 回答