Fonte do sistema para iPhone
Pergunta
Qual é o nome da fonte do sistema padrão no iPhone?
Eu gostaria de recuperar isso para personalizar um UIView
.
Solução
Para o deleite dos puristas de fontes em todos os lugares, a interface do sistema iPhone usa helvetica ou uma variante.
A interface original do iPhone, iPhone 3G e iPhone 3GS usa Helvetica. Como observado pela primeira vez pelo sempre excelente Daringfireball, o iPhone 4 usa uma fonte sutilmente revisada chamada "Helvetica Neue". O Daringfireball também observa que essa alteração está relacionada à tela do iPhone 4, em vez do sistema operacional iOS 4 e aos modelos mais antigos do iPhone, executando o iOS 4, ainda usam o Helvetica como fonte do sistema.
Os modelos iPod lançados antes do iPhone usam Chicago, Espy Sans ou Miríade e use Helvetica após o lançamento do iPhone.
A partir de http://www.everyipod.com/iphone-daq/iphone-who-designed-iphone-font-ususe-iphone-ringtones.html
Por iOS9 mudou para São Francisco. Ver http://developer.apple.com/fonts para mais informações.
Outras dicas
Se você estiver fazendo personalização programática, não codifique a fonte do sistema. Usar UIFont systemFontOfSize:
, UIFont boldSystemFontOfSize:
e UIFont italicSystemFontOfSize
(Documentação da Apple).
Isso se tornou especialmente relevante desde o iOS 7, que mudou a fonte do sistema para Helvetica Neue.
Isso se tornou super especialmente relevante desde o iOS 9, que mudou a fonte do sistema novamente Para São Francisco.
Afaik iPhone usa "helvética"Por padrão <iOS 10
Rápido
Fonte específica
Definir uma fonte específica em Swift é feita assim:
let myFont = UIFont(name: "Helvetica", size: 17)
Se você não souber o nome, poderá obter uma lista dos nomes de fontes disponíveis como este:
print(UIFont.familyNames())
Ou uma lista ainda mais detalhada como esta:
for familyName in UIFont.familyNames() {
print(UIFont.fontNamesForFamilyName(familyName))
}
Mas a fonte do sistema muda de versão para versão do iOS. Portanto, seria melhor obter a fonte do sistema dinamicamente.
Fonte do sistema
let myFont = UIFont.systemFontOfSize(17)
Mas temos o tamanho codificado. E se os olhos do usuário estiverem ruins e eles quiserem aumentar a fonte? Obviamente, você pode fazer uma configuração no seu aplicativo para o usuário alterar o tamanho da fonte, mas isso seria irritante se o usuário tivesse que fazer isso separadamente para cada aplicativo do telefone. Seria mais fácil fazer apenas uma alteração nas configurações gerais ...
Fonte dinâmica
let myFont = UIFont.preferredFont(forTextStyle: .body)
Ah, agora temos a fonte do sistema no tamanho escolhido pelo usuário para o Estilo de texto Estamos trabalhando com. Esta é a maneira recomendada de definir a fonte. Ver Suportando o tipo dinâmico Para mais informações sobre isso.
Relacionado
Você sempre pode usar
UIFont *systemFont = [UIFont systemFontOfSize:12];
NSLog(@"what is it? %@ %@", systemFont.familyName, systemFont.fontName);
A resposta é:
Até iOS 6
Helvetica Helvetica
iOS 7
.Helvetica Neue Interface .HelveticaNeueInterface-M3
Mas você pode apenas usar Helvetica Neue
Não tenho certeza se há uma API para obter o nome da fonte do sistema padrão. Então, eu só recebo o nome assim:
//get system default font
UILabel *label = [[UILabel alloc] init];
fontname = label.font.fontName;
[label release];
Parece estúpido, mas funciona.
Aqui está alguma atualização para apoiar iOS 7. Tem Dynamic Font Size
agora.
Para todos e quaisquer aplicativos que suportem o "tipo dinâmico", os usuários podem selecionar um tamanho de fonte no iOS 7 que trabalha em grande parte do sistema, simplesmente visitando a seção "Geral" em "Configurações" e selecionando "Tamanho da fonte".
UIFont *dynamicFont = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
E lista de constantes, Explicação detalhada é aqui
NSString *const UIFontTextStyleHeadline;
NSString *const UIFontTextStyleSubheadline;
NSString *const UIFontTextStyleBody;
NSString *const UIFontTextStyleFootnote;
NSString *const UIFontTextStyleCaption1;
NSString *const UIFontTextStyleCaption2;
Categoria Uifontsystemfonts por Uifont (Uiinterface.h) fornece vários tamanhos predefinidos convenientes.
@interface UIFont (UIFontSystemFonts)
+ (CGFloat)labelFontSize;
+ (CGFloat)buttonFontSize;
+ (CGFloat)smallSystemFontSize;
+ (CGFloat)systemFontSize;
@end
Eu o uso para mensagens de bate -papo (etiquetas) e funciona bem quando preciso obter o tamanho dos blocos de texto.
[UIFont systemFontOfSize:[UIFont labelFontSize]];
Codificação feliz!
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
Isso fornecerá a fonte do sistema com o tamanho da fonte do sistema padrão aplicado para os textos da etiqueta por padrão.
Rápido
Você sempre deve usar os padrões do sistema e não codificar o nome da fonte porque a fonte padrão pode ser alterada pela Apple a qualquer momento.
Existem algumas fontes padrão do sistema (Normal, negrito, itálico) com tamanhos diferentes (etiqueta, botão, outros):
let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)
Beaware que o tamanho da fonte padrão depende da visualização de destino (etiqueta, botão, outros)
Exemplos:
let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize)
let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize)
let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)
Faça o download do arquivo .ttf
Adicione o arquivo .ttf em Recurso de pacote de copiar, verifique se o arquivo TTF é adicionado em recurso
In info.plist, adicione o nome do arquivo TTF como está.
Agora abra o livro de fontes Adicione o arquivo .ttf no livro de fontes, selecione o ícone Informações lá você encontra o nome do PostScript.
Agora dê o nome PostScript no local do nome da fonte
A fonte padrão para iOS é São Francisco. Você pode consultar o link para mais detalhes