fonte do sistema iPhone

98

Qual é o nome da fonte padrão do sistema no iPhone?

Eu gostaria de recuperar isso para personalizar a UIView.

SK9
fonte

Respostas:

109

Para o deleite dos puristas das fontes em todos os lugares, a interface do sistema do iPhone usa Helvetica ou uma variante dela.

A interface de sistema original do iPhone, iPhone 3G e iPhone 3GS usa Helvetica. Conforme notado 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 mudança está relacionada à tela do iPhone 4 em vez do sistema operacional iOS 4 e modelos de iPhone mais antigos executando iOS 4 ainda usam Helvetica como fonte do sistema.

Os modelos de iPod lançados antes do iPhone usam Chicago, Espy Sans ou Myriad e usam Helvetica após o lançamento do iPhone.

De http://www.everyipod.com/iphone-faq/iphone-who-designed-iphone-font-used-iphone-ringtones.html

Para iOS9 , foi alterado para San Fransisco . Consulte http://developer.apple.com/fonts para obter mais informações.

Gary Willoughby
fonte
6
Atualmente é a fonte Helvetica Neue Regular.
Agostinho
4
Para iOS9, foi alterado para San Fransisco. Consulte developer.apple.com/fonts para obter mais informações.
Freek Sanders
103

Se você estiver fazendo personalização programática, não codifique a fonte do sistema. Use UIFont systemFontOfSize:, UIFont boldSystemFontOfSize:e UIFont italicSystemFontOfSize( documentação da Apple ).

Isso se tornou especialmente relevante desde o iOS 7, que alterou a fonte do sistema para Helvetica Neue.

Isto tornou-se super- especial relevância desde iOS 9, que mudou a fonte do sistema novamente para San Francisco.

Adam Wright
fonte
1
Não vou mudar a fonte do sistema, é uma má ideia. Mas eu quero algum html em UIWebView.
SK9,
Isso não muda a fonte do sistema - apenas fornece UIFontinstâncias da fonte do sistema usando os tamanhos fornecidos e sempre retornará as fontes do sistema, independentemente de atualizações futuras do iOS.
Adam Wright,
A fonte que estou vendo em meu UIWebView não parece Helvetica para mim. Posso estar errado, mas definir a fonte da minha visualização tira minhas dúvidas.
SK9 de
"não codifique a fonte do sistema" é um bom conselho ou um conselho realmente ruim, dependendo da situação. Pessoalmente, gostaria de ter codificado Helvetica... fazendo isso agora.
Dan Rosenstark
Concordo totalmente, não fixe o código, por favor. Esta deve ser a resposta certa para esta pergunta
Esteve
16

afaik iPhone usa " Helvetica " por padrão <iOS 10

Vladimir
fonte
como visto por outras respostas, depende da versão do iOS
ericosg
12

Rápido

Fonte específica

Definir uma fonte específica no Swift é feito assim:

let myFont = UIFont(name: "Helvetica", size: 17)

Se você não souber o nome, poderá obter uma lista dos nomes das fontes disponíveis como esta:

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 embutido no código. E se os olhos do usuário forem ruins e ele quiser aumentar a fonte? Obviamente, você poderia fazer uma configuração em seu aplicativo para que o usuário alterasse o tamanho da fonte, mas isso seria irritante se o usuário tivesse que fazer isso separadamente para cada aplicativo em seu 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 com o qual estamos trabalhando. Esta é a maneira recomendada de definir a fonte. Veja Suportando Tipo Dinâmico para mais informações sobre isso.

Relacionados

Suragch
fonte
11

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

Dan Rosenstark
fonte
1
em Swift no iOS 9 recebo .SFUIText-RegularcomosystemFont.familyName
Daniel
@simpleBob Mais sobre isso: designforhackers.com/blog/apples-new-san-francisco-font
Dan Rosenstark
8

Não tenho certeza se existe uma API para obter o nome da fonte do sistema padrão. Então, acabei de receber o nome assim:

    //get system default font
    UILabel *label = [[UILabel alloc] init];        
    fontname = label.font.fontName;
    [label release];

Parece estúpido, mas funciona.

perkin tang
fonte
17
UIFont * font = [UIFont systemFontOfSize: 12.0]; <! - obtém a fonte padrão
Steven Baughman
Existem métodos mais fáceis. Mas +1 para pensar fora da caixa
Krishnabhadra
Parece melhor: P [UIFont systemFontOfSize:[UIFont labelFontSize]];Veja minha resposta abaixo.
Anton Gaenko de
3

Aqui estão algumas atualizações para oferecer suporte ao iOS 7 . Agora Dynamic Font Sizesim.

Para todos os aplicativos que suportam "Tipo dinâmico", os usuários podem selecionar um tamanho de fonte no iOS 7 que funcione em todo o sistema, simplesmente visitando a seção "Geral" em "Configurações" e selecionando "Tamanho da fonte".

UIFont *dynamicFont  = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];

E a lista de constantes, a explicação detalhada está aqui

NSString *const UIFontTextStyleHeadline;
NSString *const UIFontTextStyleSubheadline;
NSString *const UIFontTextStyleBody;
NSString *const UIFontTextStyleFootnote;
NSString *const UIFontTextStyleCaption1;
NSString *const UIFontTextStyleCaption2;
BS
fonte
3

A categoria UIFontSystemFonts para 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 chat (rótulos) e funciona bem quando preciso obter o tamanho dos blocos de texto.

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

Boa codificação!

Anton Gaenko
fonte
3
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];

Isso fornecerá a fonte do sistema com o tamanho de fonte do sistema padrão aplicado aos textos da etiqueta por padrão.

Rohit Saraf
fonte
2

Rápido

Você deve sempre 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 (rótulo, botão, outros):

let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)

Esteja ciente de que o tamanho da fonte padrão depende da visualização de destino (rótulo, 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)
Musa almatri
fonte
0
  1. download do arquivo .ttf necessário

  2. adicione o arquivo .ttf ao recurso de pacote de cópia, verifique se o arquivo ttf foi adicionado ao recurso

  3. Em info.pllist, adicione o nome do arquivo ttf como está.

  4. agora abra o livro de fontes, adicione o arquivo .ttf no livro de fontes, selecione o ícone de informações lá você encontrará o nome do postscript.

  5. agora coloque o nome do postscript no lugar do nome da fonte

K.Gowri Manohari
fonte
0

A fonte padrão para iOS é San Francisco. Você pode consultar o link para mais detalhes

Sateesh Pasala
fonte