uso personalizadas para online libres fuentes descargar como comercial iphone ios cocoa-touch storyboard custom-font

iphone - personalizadas - Fuente personalizada en un guión gráfico?



fuentes libres para uso comercial (7)

Tengo una fuente agregada a mi proyecto iOS. Está en el proyecto y se copia cuando se construye el proyecto. Parece ser una fuente válida y se mostrará si incluyo todas las fuentes en el dispositivo a través de la aplicación. Tengo el plist configurado correctamente para incluir la fuente. Parece que no puedo obtener el hallazgo para mostrarlo en mis controles de texto, botones, etc. en la sección del guión gráfico de Xcode 4.2. Además, no parece que me permita escribir el nombre de la fuente, me obliga a utilizar el diálogo de fuente. Intenté instalar esta fuente en el sistema también, pero parece que no puedo mostrarla en esta lista. ¿Debo hacer esto solo en código o puedo hacerlo a través de la interfaz del guión gráfico?

Tenga en cuenta que puedo hacer que esto funcione en código, pero sería mucho más conveniente hacerlo a través del guión gráfico.


ACTUALIZACIÓN: Xcode 6 Interface Builder ahora le permite seleccionar fuentes personalizadas y las renderizará en tiempo de diseño correctamente.

Sé que esta pregunta es bastante antigua, pero he estado luchando por encontrar una forma fácil de especificar una fuente personalizada en Storyboard (o Interface Builder) fácilmente para iOS 5 y encontré una solución bastante conveniente.

Primero, asegúrese de haber agregado la fuente al proyecto siguiendo este tutorial . Recuerde también que la fuente personalizada UINavigationBar, UITabBar y UISegmentedControl se puede especificar utilizando el método setTitleTextAttributes: del proxy UIAppearance .

Agregue las siguientes categorías al proyecto para UIButton, UITextField, UILabel y cualquier otro componente que necesite una fuente personalizada. Las categorías simplemente implementan una nueva propiedad fontName que cambia la fuente actual del elemento mientras mantiene el tamaño de la fuente.

Para especificar la fuente en Storyboard, simplemente seleccione el elemento deseado (etiqueta, botón, vista de texto, etc.) y agregue un atributo de tiempo de ejecución definido por el usuario con la ruta clave establecida en fontName de tipo Cadena y valor con el nombre de su fuente personalizada.

Y eso es todo, ni siquiera necesita importar las categorías. De esta forma, no necesita una salida para cada componente de la interfaz de usuario que requiera una fuente personalizada y no necesita codificarla manualmente.

Tenga en cuenta que la fuente no se mostrará en Storyboard, pero la verá cuando la ejecute en su dispositivo o simulador.

Archivos de categoría

UIButton + TCCustomFont.h :

#import <UIKit/UIKit.h> @interface UIButton (TCCustomFont) @property (nonatomic, copy) NSString* fontName; @end

UIButton + TCCustomFont.m :

#import "UIButton+TCCustomFont.h" @implementation UIButton (TCCustomFont) - (NSString *)fontName { return self.titleLabel.font.fontName; } - (void)setFontName:(NSString *)fontName { self.titleLabel.font = [UIFont fontWithName:fontName size:self.titleLabel.font.pointSize]; } @end

UILabel + TCCustomFont.h :

#import <UIKit/UIKit.h> @interface UILabel (TCCustomFont) @property (nonatomic, copy) NSString* fontName; @end

UILabel + TCCustomFont.m :

#import "UILabel+TCCustomFont.h" @implementation UILabel (TCCustomFont) - (NSString *)fontName { return self.font.fontName; } - (void)setFontName:(NSString *)fontName { self.font = [UIFont fontWithName:fontName size:self.font.pointSize]; } @end

UITextField + TCCustomFont.h :

#import <UIKit/UIKit.h> @interface UITextField (TCCustomFont) @property (nonatomic, copy) NSString* fontName; @end

UITextField + TCCustomFont.m :

#import "UITextField+TCCustomFont.h" @implementation UITextField (TCCustomFont) - (NSString *)fontName { return self.font.fontName; } - (void)setFontName:(NSString *)fontName { self.font = [UIFont fontWithName:fontName size:self.font.pointSize]; } @end

También se puede descargar desde GIST y también como un solo archivo .

Solución de problemas

Si ejecuta errores en tiempo de ejecución porque no se especifica la propiedad fontName , solo agregue la -all_load en Otros indicadores de vinculador en la configuración del proyecto para forzar al vinculador a incluir las categorías.


A partir de XCode 9.4, XCode aún no respeta las fuentes directamente en el guión gráfico. Puede verlos en tiempo de diseño, pero no en tiempo de ejecución. Si usa la API fontWithName, sabrá que devuelve nil, pero cuando se usa en storyboard / xib, no hay forma de saber por qué no aparece.

  • La única manera de asegurarse de que funciona fácilmente desde Storyboard / XIB en tiempo de ejecución es agregar .ttc / .ttf en Copy Bundle Resources Build Phase.

  • A partir del 9.4, ya no es necesario agregar nombres de archivos de fuentes a info.plist.


Desde Xcode6.0, como nota de lanzamiento de Xcode6.0 :

Interface Builder renderiza fuentes iOS integradas y personalizadas durante el tiempo de diseño, brindando una vista previa más precisa de cómo se verá la aplicación finalizada, con las dimensiones correctas.

puede establecer la fuente de la etiqueta en el guión gráfico. Puede hacer lo siguiente

  1. Obtenga su archivo de fuente personalizado ( .ttf, .ttc)
  2. Importe los archivos de fuentes a su proyecto de Xcode

  3. En la aplicación-info.plist , agregue una clave llamada Fuentes proporcionada por la aplicación . Es un tipo de matriz, agregue todo el nombre de su archivo de fuente a la matriz, nota: incluida la extensión del archivo.

  1. En el guión gráfico, arrastre un UILabel a su interfaz, seleccione la etiqueta y navegue hasta el Inspector de atributos , haga clic en el botón del icono derecho del área Selección de fuente . En el panel emergente, elija Fuente en Personalizar , y elija la Familia de usted embebida nombre de la fuente.

ref a


Este es un error en XCode, estado allí desde 3.x y aún no corregido. Yo también he enfrentado el mismo problema, incluso intenté agregarlo a mi sistema sin suerte. Aquí hay otra publicación de SO sobre esto Fuentes que no se muestran en Interface Builder


La respuesta de Monjer es la correcta. Si usted, como yo, no ve la fuente agregada después de la compilación, asegúrese de agregar la fuente a las fases de compilación (objetivos -> fases de compilación -> copiar recursos de paquete -> agregar sus archivos de fuentes)


La solución de redent84 fue increíble.

Solo agregaría una mejora, agregue la categoría en NSObject, por lo que solo debe hacerlo una vez.

NSObject + CustomFont.h

#import <Foundation/Foundation.h> @interface NSObject (CustomFont) @property (strong, nonatomic) NSString *fontName; @property (strong, nonatomic) UIFont *font; @end

NSObject + CustomFont.m

#import "NSObject+CustomFont.h" @implementation NSObject (CustomFont) @dynamic font; - (NSString *)fontName { return self.font.fontName; } - (void)setFontName:(NSString *)fontName { self.font = [UIFont fontWithName:fontName size:self.font.pointSize]; } @end


Ninguno de estos funcionó para mí, pero esto fue así.

#import <UIKit/UIKit.h> @interface UILabelEx : UILabel @end #import "UILabelEx.h" #import "Constants.h" @implementation UILabelEx - (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection { [super traitCollectionDidChange: previousTraitCollection]; self.font = [UIFont fontWithName:APP_FONT size:self.font.pointSize]; } @end