Pergunta

Quero definir o estilo de fonte itálico no UITextView, mas a fonte itálica simplesmente não funciona para chinês/japonês/coreano no iOS 7. Alguém poderia ajudar?

Foi útil?

Solução

Como não há fontes chinesas em itálico no iOS, você precisa usar transformação afim para inclinar a fonte chinesa de estilo normal.

O código abaixo fornece uma inclinação de 15° para Heiti SC Medium:

CGAffineTransform matrix = CGAffineTransformMake(1, 0, tanf(15 * (CGFloat)M_PI / 180), 1, 0, 0);
UIFontDescriptor *desc = [UIFontDescriptor fontDescriptorWithName:@"Heiti SC Medium" matrix:matrix];
textView.font = [UIFont fontWithDescriptor:desc size:17];

Efeito real:

enter image description here

Outras dicas

Eu não estou resolvendo seu problema, mas para lembrá-lo de que esse tipo de "fonte itálica programática" tem uma legibilidade muito ruim.

Para o texto CJK, a maneira certa de expressar ênfase (ou citação) é usar outro estilo (geralmente fonte serif). Para chinês simplificado, use Songti, Fangsong ou Kaiti em vez de oblíquo para ênfase, se o seu texto normal estiver usando o Heiti (IOS PADLET). Eu não estou muito familiarizado com coreano e japonês, mas eles usam abordagens semelhantes.

Aqui está uma lista de fontes para o iOS 7: http:// suporte. apple.com/kb/ht5878?viewlocale=en_us&locale=en_us Mincho japonês "Hiragino Mincho Pron" está disponível diretamente. Fontes chinesas extras não são instaladas por padrão. Você precisará baixar primeiro. Por favor, consulte este exemplo para como instalar fontes adicionais fornecidas pelo sistema: https://github.com/fdstevex/ FDSFontDownloader / .

Eu sei que é um pouco complicado, mas isso é realmente como fazemos itálico.

Concordo com @an0 mas desta forma as transformações feitas são melhores para leitura e compreensão

CGAffineTransform CGAffineTransformMakeSkew (CGFloat degree) {
    CGAffineTransform t = CGAffineTransformIdentity;
    t.c = (degree * M_PI / 180.0f);
    return t;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top