fuente del sistema de iPhone

98

¿Cuál es el nombre de la fuente del sistema predeterminada en el iPhone?

Me gustaría recuperar esto para personalizar un UIView.

SK9
fuente

Respuestas:

109

Para el deleite de los puristas de fuentes de todo el mundo, la interfaz del sistema del iPhone utiliza Helvetica o una variante de la misma.

La interfaz del sistema iPhone, iPhone 3G y iPhone 3GS original utiliza Helvetica. Como señaló por primera vez el siempre excelente DaringFireball, el iPhone 4 utiliza una fuente sutilmente revisada llamada "Helvetica Neue". DaringFireball también señala que este cambio está relacionado con la pantalla del iPhone 4 en lugar del sistema operativo iOS 4 y los modelos de iPhone más antiguos que ejecutan iOS 4 todavía usan Helvetica como fuente del sistema.

Los modelos de iPod lanzados antes del iPhone usan Chicago, Espy Sans o Myriad y usan Helvetica después del lanzamiento del iPhone.

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

Para iOS9 ha cambiado a San Fransisco . Consulte http://developer.apple.com/fonts para obtener más información.

Gary Willoughby
fuente
6
Actualmente es la fuente Helvetica Neue Regular.
Augustine
4
Para iOS9 ha cambiado a San Fransisco. Consulte developer.apple.com/fonts para obtener más información.
Freek Sanders
103

Si está haciendo personalización programática, no codifique la fuente del sistema. Uso UIFont systemFontOfSize:, UIFont boldSystemFontOfSize:y UIFont italicSystemFontOfSize( documentación de Apple ).

Esto se ha vuelto especialmente relevante desde iOS 7, que cambió la fuente del sistema a Helvetica Neue.

Esto se ha vuelto muy especialmente relevante desde iOS 9, que cambió la fuente del sistema nuevamente a San Francisco.

Adam Wright
fuente
1
No voy a cambiar la fuente del sistema, es una mala idea. Pero lo quiero para algunos html en UIWebView.
SK9
Esto no cambia la fuente del sistema, solo le brinda UIFontinstancias de la fuente del sistema con los tamaños dados y siempre devolverá las fuentes del sistema independientemente de las futuras actualizaciones de iOS.
Adam Wright
La fuente que veo en mi UIWebView no me parece Helvetica. Puede que esté equivocado, pero configurar la fuente para mi vista me quita la duda.
SK9
"No codifique la fuente del sistema" es un buen consejo, o realmente un mal consejo, dependiendo de la situación. Personalmente, desearía haber codificado Helvetica... haciendo eso ahora.
Dan Rosenstark
Totalmente de acuerdo, no codifique, por favor. Esta debería ser la respuesta correcta a esta pregunta
Esteve
16

afaik iPhone usa " Helvetica " por defecto <iOS 10

Vladimir
fuente
como se ve en otras respuestas, depende de la versión de iOS
ericosg
12

Rápido

Fuente específica

Configurar una fuente específica en Swift se hace así:

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

Si no conoce el nombre, puede obtener una lista de los nombres de fuentes disponibles como esta:

print(UIFont.familyNames())

O una lista aún más detallada como esta:

for familyName in UIFont.familyNames() {
    print(UIFont.fontNamesForFamilyName(familyName))
}

Pero la fuente del sistema cambia de una versión a otra de iOS. Por lo tanto, sería mejor obtener la fuente del sistema de forma dinámica.

Fuente del sistema

let myFont = UIFont.systemFontOfSize(17)

Pero tenemos el tamaño codificado. ¿Qué pasa si los ojos del usuario son malos y quieren agrandar la fuente? Por supuesto, puede establecer una configuración en su aplicación para que el usuario cambie el tamaño de fuente, pero esto sería molesto si el usuario tuviera que hacer esto por separado para cada aplicación en su teléfono. Sería más fácil hacer un solo cambio en la configuración general ...

Fuente dinámica

let myFont = UIFont.preferredFont(forTextStyle: .body)

Ah, ahora tenemos la fuente del sistema en el tamaño elegido por el usuario para el estilo de texto con el que estamos trabajando. Esta es la forma recomendada de configurar la fuente. Consulte Compatibilidad con el tipo dinámico para obtener más información al respecto.

Relacionado

Suragch
fuente
11

Siempre puedes usar

UIFont *systemFont = [UIFont systemFontOfSize:12];
NSLog(@"what is it? %@ %@", systemFont.familyName, systemFont.fontName);

La respuesta es:

Hasta iOS 6

 Helvetica Helvetica

ios 7

.Helvetica Neue Interface .HelveticaNeueInterface-M3

pero puedes usar Helvetica Neue

Dan Rosenstark
fuente
1
en Swift en iOS 9 obtengo .SFUIText-RegularcomosystemFont.familyName
Daniel
@simpleBob Más sobre eso: designforhackers.com/blog/apples-new-san-francisco-font
Dan Rosenstark
8

No estoy seguro de que haya una API para obtener el nombre de fuente del sistema predeterminado. Así que obtengo el nombre así:

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

Parece estúpido pero funciona.

perkin tang
fuente
17
UIFont * font = [UIFont systemFontOfSize: 12.0]; <! - obtiene la fuente predeterminada
Steven Baughman
Hay métodos más fáciles ... Pero +1 para pensar fuera de la caja
Krishnabhadra
Se ve mejor: P [UIFont systemFontOfSize:[UIFont labelFontSize]];Vea mi respuesta a continuación.
Anton Gaenko
3

Aquí hay algunas actualizaciones para admitir iOS 7 . Tiene Dynamic Font Sizeahora.

Para todas y cada una de las aplicaciones que admiten "Tipo dinámico", los usuarios pueden seleccionar un tamaño de fuente en iOS 7 que funcione en todo el sistema, simplemente visitando la sección "General" en "Configuración" y seleccionando "Tamaño de fuente".

UIFont *dynamicFont  = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];

Y lista de constantes, explicación detallada está aquí

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

La categoría UIFontSystemFonts para UIFont ( UIInterface.h ) proporciona varios tamaños predefinidos convenientes.

@interface UIFont (UIFontSystemFonts)
 + (CGFloat)labelFontSize;
 + (CGFloat)buttonFontSize;
 + (CGFloat)smallSystemFontSize;
 + (CGFloat)systemFontSize;
@end 

Lo uso para mensajes de chat (etiquetas) y funciona bien cuando necesito obtener el tamaño de los bloques de texto.

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

¡Feliz codificación!

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

Esto le dará la fuente del sistema con el tamaño de fuente del sistema predeterminado aplicado a los textos de la etiqueta de forma predeterminada.

Rohit Saraf
fuente
2

Rápido

Siempre debe usar los valores predeterminados del sistema y no codificar el nombre de la fuente porque Apple podría cambiar la fuente predeterminada en cualquier momento.

Hay un par de fuentes predeterminadas del sistema (normal, negrita , cursiva ) con diferentes tamaños (etiqueta, botón, otros):

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

Tenga en cuenta que el tamaño de fuente predeterminado depende de la vista de destino (etiqueta, botón, otros)

Ejemplos:

let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize)
let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize)
let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)
Musa almatri
fuente
0
  1. descargar el archivo .ttf requerido

  2. agregue el archivo .ttf en el recurso de paquete de copia, verifique si el archivo ttf se agrega en el recurso

  3. En info.pllist agregue el nombre del archivo ttf tal como está.

  4. ahora abra el libro de fuentes agregue el archivo .ttf en el libro de fuentes, seleccione el icono de información allí encontrará el nombre de la posdata.

  5. ahora escriba el nombre de la posdata en el lugar del nombre de la fuente

K.Gowri Manohari
fuente
0

La fuente predeterminada para iOS es San Francisco. Puede consultar el enlace para obtener más detalles.

Sateesh Pasala
fuente