Procurei por todo lugar e não consigo encontrar uma resposta definitiva (atual) para essa pergunta.
Tenho um UILabel configurado para usar dimensionamento dinâmico de fontes por questões de acessibilidade. Funcionou muito bem com esta linha de código:
attributes[.font] = UIFont.preferredFont(forTextStyle: .body)
No entanto, a fonte padrão não funciona para mim do ponto de vista do design.
Quando tento usar uma fonte personalizada, faço isso:
attributes[.font] = UIFont(name: "Futura-Medium", size: 17)
Isso me força a definir o tamanho, o que acredito que anula a capacidade de alterar a fonte dinamicamente.
Eu adoraria descobrir uma de duas soluções...
Ou defina a preferredFont universalmente como a fonte da minha escolha. Ou uma linha de código melhor na qual eu possa selecionar uma fonte personalizada e ainda ajustá-la dinamicamente.
Para recapitular... Atualmente, meu resultado é dimensionar o texto corretamente, mas uma fonte genérica com este código:
var attributes = [NSAttributedString.Key: Any]()
attributes[.font] = UIFont.preferredFont(forTextStyle: .body)
attributes[.foregroundColor] = UIColor.black
Ou é uma fonte mais adequada, mas não escala nada com este código:
var attributes = [NSAttributedString.Key: Any]()
attributes[.font] = UIFont(name: "Futura-Medium", size: 17)
attributes[.foregroundColor] = UIColor.black
Você pode instanciar um objeto de fonte preferido e usar seu tamanho de ponto para criar seu objeto de fonte personalizado:
Para torná-lo disponível globalmente, você pode adicionar uma extensão no UIFont:
Agora você pode usá-lo assim:
ou