NSAttributedString Strike属性不起作用

时间:2018-10-20 13:44:10

标签: ios text nsattributedstring strikethrough

我知道这个问题已经问了很多遍了,但是我读到的答案都没有帮助我解决问题...

在我的iOS应用中,我正在使用默认框架(UIGraphicsBeginPDFContextToFile ...)生成PDF文件。 一切正常,我可以更改文本颜色,基础样式等。

但是我无法敲弦。

这是我的代码:

[toBeConfirmedText addAttributes:@{ NSBaselineOffsetAttributeName: @(0), NSStrikethroughStyleAttributeName: @(NSUnderlineStyleThick), NSStrikethroughColorAttributeName: [UIColor redColor] } range:NSMakeRange(0, toBeConfirmedText.length)];

但这不起作用...

有人有主意吗?

1 个答案:

答案 0 :(得分:0)

我应该添加一条注释,说明您的代码在Xcode 10中没有问题。但是由于我需要添加测试代码,因此您可以将其视为答案。

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"myTest.pdf"];
        BOOL result =    UIGraphicsBeginPDFContextToFile(filePath, CGRectZero, nil);

        UIGraphicsBeginPDFPage();

        NSMutableAttributedString * toBeConfirmedText = [[NSMutableAttributedString alloc]initWithString:@"mytest"];

        [toBeConfirmedText addAttributes:@{ NSBaselineOffsetAttributeName: @(0), NSStrikethroughStyleAttributeName: @(NSUnderlineStyleThick), NSStrikethroughColorAttributeName: [UIColor redColor] } range:NSMakeRange(0, toBeConfirmedText.length)];

        [toBeConfirmedText drawInRect: CGRectMake(0, 0, 600, 200)];
        UIGraphicsEndPDFContext();