atribuir NSAttributedString greve não funciona

votos
0

Eu sei que esta pergunta foi feita muitas vezes, mas nenhuma das respostas que eu li me ajudou a resolver o meu problema ...

Em meu aplicativo iOS, eu estou gerando um arquivo PDF utilizando frameworks padrão (UIGraphicsBeginPDFContextToFile ...). Tudo funciona bem, eu posso mudar as cores do texto, estilos subjacentes, etc.

Mas eu não conseguem chegar a um string.

Aqui está o meu código:

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

Mas isso não funciona ...

Alguém tem uma ideia?

Publicado 20/10/2018 em 13:44
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Devo acrescentar um comentário que o seu código não tem nenhum problema em Xcode 10. Mas porque eu preciso adicionar códigos de teste, então você pode tratá-lo como uma resposta.

        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();
Respondeu 21/10/2018 em 13:52
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more