ios - tipo - ¿Puedo incrustar una fuente personalizada en una aplicación de iPhone?
fuentes de letras para iphone (30)
Swift, código de forma: (funciona también con swift 2.0)
Agregue las fuentes requeridas a su proyecto (como agregar imágenes, solo arrastre a Xcode), asegúrese de que estén orientadas a su proyecto,
agregue este método y cargue fuentes personalizadas (recomendado en appDelegate didFinishLaunchingWithOptions
)
func loadFont(filePath: String) {
let fontData = NSData(contentsOfFile: filePath)!
let dataProvider = CGDataProviderCreateWithCFData(fontData)
let cgFont = CGFontCreateWithDataProvider(dataProvider)!
var error: Unmanaged<CFError>?
if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
print("Unable to load font: %@", errorDescription, terminator: "")
}
}
Ejemplo de uso:
if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
loadFont(fontPath)
}
Usa la fuente:
UIFont(name: "My-Font", size: 16.5)
Esta pregunta se refiere a iOS pre-3.2. A partir de 3.2, esta funcionalidad es fácilmente alcanzable utilizando la respuesta de samvermette a continuación, y he cambiado la Respuesta Aceptada (de comando a samvermette) para reflejar esto. No puedo dar crédito a ambas respuestas (además de upvotes) pero ambas son buenas.
Me gustaría que una aplicación incluyera una fuente personalizada para representar texto, cargarla y luego usarla con elementos UIKit
estándar como UILabel
. es posible?
Encontré abajo los enlaces:
- http://discussions.apple.com/thread.jspa?messageID=8304744
- http://forums.macrumors.com/showthread.php?t=569311
pero esto requeriría que yo renderizase cada glifo, lo cual es un poco como un trabajo duro, especialmente para texto de varias líneas.
También encontré publicaciones que dicen directamente que no es posible, pero sin justificación, así que estoy buscando una respuesta definitiva.
EDITAR - fallado -[UIFont fontWithName:size:]
experiment
Descargué Harrowprint.tff (descargado desde here ) y lo agregué a mi directorio de Recursos y al proyecto. Entonces probé este código:
UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];
que dio lugar a una excepción que se lanza. Mirar el archivo TTF en Finder confirmó que el nombre de la fuente era Harrowprint.
EDITAR : ha habido varias respuestas hasta el momento que me dicen que lea la documentación en X o Y. Experimenté ampliamente con todo esto y no llegué a ninguna parte. En un caso, X resultó ser relevante solo en OS X, no en iPhone. En consecuencia, estoy estableciendo una recompensa por esta pregunta, y otorgaré la recompensa a la primera persona que proporcione una respuesta (utilizando solo API documentadas) que responda con información suficiente para que esto funcione en el dispositivo. Trabajar en el simulador también sería una ventaja.
EDITAR - Parece que la recompensa se otorga automáticamente a la respuesta con el mayor número de votos. Interesante. En realidad, nadie proporcionó una respuesta que resolviera la pregunta tal como se la formuló: la solución que implica la codificación de su propia subclase UILabel
no admite el UILabel
palabras, que es una característica esencial para mí, aunque creo que podría ampliarla para hacerlo.
Aún no está disponible, pero la próxima versión de cocos2d (framework de juegos 2d) admitirá fuentes de mapa de bits de longitud variable como mapas de caracteres.
http://code.google.com/p/cocos2d-iphone/issues/detail?id=317
El autor no tiene una fecha de publicación fija para esta versión, pero sí vi una publicación que indicaba que sería en el próximo mes o dos.
Aquí están las instrucciones paso a paso cómo hacerlo. No necesita biblioteca extra o cualquier codificación especial.
shang-liang.com/blog/custom-fonts-in-ios4
La mayoría de las veces el problema es con la fuente, no con el método. La mejor manera de hacerlo es usar una fuente que con seguridad funcione, como verdana o geogia. A continuación, cambie a la fuente deseada. Si no funciona, tal vez el nombre de la fuente no sea correcto, o la fuente no sea una fuente bien formada.
Buscar ATSApplicationFontsPath
Una entrada simple que le permite incluir el (los) archivo (s) de fuente en su carpeta de recursos de la aplicación y "simplemente funcionan" en su aplicación.
Con iOS 8
+ y Xcode 6
+ puedes hacer esto fácilmente. Aquí están los pasos:
1) Arrastre y suelte su fuente en la carpeta de Archivos de Soporte de Xcode
. No olvides marcar tu aplicación en la sección Agregar a objetivos . A partir de este momento, puede utilizar esta fuente en IB
y elegirla de la paleta de fuentes.
2) Para que esta fuente esté disponible en su dispositivo, abra su info.plist
y agregue las Fonts provided by application
clave de la Fonts provided by application
. Contendrá la clave del Artículo 0, debe agregar su nombre de fuente como valor. El nombre de la fuente puede variar de su nombre de archivo de fuente. Pero primero, intente agregar su nombre de archivo en la mayoría de los casos este trabajo.
Si no, este artículo siempre me ayudó.
Aquí hay un fragmento rápido del código de este artículo para ayudarlo a encontrar el nombre de la fuente.
func allFonts(){
for family in UIFont.familyNames(){
println(family)
for name in UIFont.fontNamesForFamilyName(family.description)
{
println(" /(name)")
}
}
}
EDITAR
Quiero mencionar que necesita agregar archivos de fuentes a las fases de construcción de su destino , copiar los recursos del paquete . Sin él, no verás tu fuente en el dispositivo. Y podría llevar a un comportamiento inesperado.
Por ejemplo, me encuentro con un bug
, cuando UITextField
tiene una fuente personalizada, pero esta fuente no estaba en los recursos del paquete de copia . Y cuando paso al viewcontroller
con este campo de textfield
, hay un retraso de unos 4 segundos antes de que se viewDidLoad
función viewDidLoad
. La resolución de problemas de fuentes eliminó este retraso. Por lo tanto, recomiendo revisarlo dos veces. (rdar: // 20028250) Por cierto, no pude reproducir el error, pero estoy seguro de que el problema estaba en la fuente.
En Info.plist, agregue la entrada "Fuentes proporcionadas por la aplicación" e incluya los nombres de las fuentes como cadenas:
Fonts provided by application
Item 0 myfontname.ttf
Item 1 myfontname-bold.ttf
...
Luego, verifica que tu fuente esté incluida ejecutando:
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"%@", fontName);
}
}
Tenga en cuenta que el nombre del archivo ttf puede no ser el mismo que usa cuando configura la fuente para su etiqueta (puede usar el código anterior para obtener el parámetro "fontWithName"):
[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];
Encuentra el TTF en el buscador y "Obtener información". Bajo el encabezado "Nombre completo:" me dio un nombre que luego usé con fontWithName
(simplemente copié y pegué el nombre exacto, en este caso no fue necesaria la extensión ''.ttf'').
Es muy fácil agregar una nueva fuente en su aplicación iOS existente.
Solo necesita agregar la fuente, por ejemplo, font.ttf en su Carpeta de recursos.
Abra su aplicación info.plist
. Agregue una nueva fila como "Fuentes proporcionadas por la aplicación" y escriba el nombre de la fuente como font.ttf.
Y cuando configure la fuente, haga como setFont:"corresponding Font Name"
Puede verificar si su fuente está agregada o no por NSArray *check = [UIFont familyNames];
.
Devuelve toda la fuente que tu aplicación soporta.
Hay una forma sencilla de usar fuentes personalizadas en iOS 4 .
- Agregue su archivo de fuente (por ejemplo,
Chalkduster.ttf
) a la carpeta de Recursos del proyecto en XCode. - Abra
info.plist
y agregue una nueva clave llamadaUIAppFonts
. El tipo de esta clave debe ser array. - Agregue su nombre de fuente personalizado a esta matriz, incluida la extensión (
Chalkduster.ttf
). - Ahora puede usar
[UIFont fontWithName:@"Chalkduster" size:16]
en su aplicación.
Desafortunadamente, IB no permite inicializar etiquetas con fuentes personalizadas. Vea esta pregunta para resolver este problema. Mi solución favorita es usar la subclase UILabel
personalizada:
@implementation CustomFontLabel
- (id)initWithCoder:(NSCoder *)decoder
{
if (self = [super initWithCoder: decoder])
{
[self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
}
return self;
}
@end
Hay una nueva forma de usar fuentes personalizadas, comenzando con iOS 4.1. Le permite cargar fuentes dinámicamente, ya sea desde archivos incluidos con la aplicación, datos descargados o lo que tenga. También le permite cargar fuentes a medida que las necesita, mientras que el método anterior las carga todas al momento de iniciar la aplicación, lo que puede demorar mucho si tiene muchas fuentes.
El nuevo método se describe en ios-dynamic-font-loading
Utiliza la función CTFontManagerRegisterGraphicsFont
, lo que le da un búfer con sus datos de fuente. Luego está disponible para UIFont
y las vistas web, al igual que con el método anterior. Aquí está el código de ejemplo de ese enlace:
NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
He combinado algunos de los consejos de esta página en algo que me funciona en iOS 5.
Primero, debe agregar la fuente personalizada a su proyecto. Luego, debe seguir los consejos de @iPhoneDev y agregar la fuente a su archivo info.plist.
Después de hacer eso, esto funciona:
UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];
Sin embargo, necesita saber el nombre PostScript de su fuente. Solo sigue los consejos de @Daniel Wood y presiona command-i mientras estés en el FontBook.
Entonces, disfruta de tu fuente personalizada.
He estado probando las diversas sugerencias en esta página en iOS 3.1.2 y estas son mis conclusiones:
El simple uso de [UIFont fontWithName:size:]
con las fuentes en el directorio de Recursos no funcionará, incluso si el nombre de FOND se establece usando FontForge.
[UIFont fontWithName:size:]
funcionará si las fuentes se cargan primero utilizando GSFontAddFromFile. Pero GSFontAddFromFile
no forma parte de iOS 3.1.2, por lo que debe cargarse dinámicamente como lo describe @rpetrich.
He hecho esto así:
Cargue la fuente:
- (void)loadFont{
// Get the path to our custom font and create a data provider.
NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
// Create the font with the data provider, then release the data provider.
customFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
}
Ahora, en tu drawRect:
haz algo como esto:
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
// Get the context.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
// Set the customFont to be the font used to draw.
CGContextSetFont(context, customFont);
// Set how the context draws the font, what color, how big.
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
UIColor * strokeColor = [UIColor blackColor];
CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
CGContextSetFontSize(context, 48.0f);
// Create an array of Glyph''s the size of text that will be drawn.
CGGlyph textToPrint[[self.theText length]];
// Loop through the entire length of the text.
for (int i = 0; i < [self.theText length]; ++i) {
// Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
}
CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, textTransform);
CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}
Básicamente, tienes que hacer algo de fuerza bruta recorriendo el texto e intercambiando información con el número mágico para encontrar tu desplazamiento (aquí, véeme usar 29) en la fuente, pero funciona.
Además, debe asegurarse de que la fuente se pueda incrustar legalmente. La mayoría no lo son y hay abogados que se especializan en este tipo de cosas, así que ten cuidado.
Para iOS 3.2 y superior: use los métodos proporcionados por varios de arriba, que son:
- Agregue su archivo de fuente (por ejemplo, Chalkduster.ttf ) a la carpeta de Recursos del proyecto en XCode.
- Abra info.plist y agregue una nueva clave llamada UIAppFonts. El tipo de esta clave debe ser array.
- Agregue su nombre de fuente personalizado a esta matriz, incluida la extensión (" Chalkduster.ttf ").
- Use
[UIFont fontWithName:@"Real Font Name" size:16]
en su aplicación.
PERO el "Nombre de fuente real" no siempre es el que se ve en el Libro de fuentes. La mejor manera es preguntar a su dispositivo qué fuentes ve y cuáles son los nombres exactos.
Uso el uifont-name-grabber publicado en: uifont-name-grabber
Simplemente coloque las fuentes que desee en el proyecto xcode, agregue el nombre del archivo a su lista y ejecútelo en el dispositivo para el que está creando, le enviará una lista completa de fuentes con los nombres que UIFont fontWithName:
espera.
Primero agregue la fuente en formato .odt a sus recursos, en este caso usaremos DINEngschriftStd.otf, luego usaremos este código para asignar la fuente a la etiqueta
[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];
Para asegurarse de que su fuente está cargada en el proyecto solo llame
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
En el .plist debes declarar la fuente. Solo agregue un registro de ''Fuentes proporcionadas por la aplicación'' y agregue una cadena de elemento 0 con el nombre de la fuente (DINEngschriftStd.otf)
Recomendaría seguir uno de mis tutoriales cortos favoritos aquí: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ de donde proviene esta información.
Paso 1: arrastre su .ttf o .otf desde Finder a su proyecto
NOTA: asegúrese de hacer clic en la casilla "Agregar a objetivos" en el objetivo principal de su aplicación
Si olvidó hacer clic para agregarlo a su destino, haga clic en el archivo de fuente en la jerarquía de su proyecto y en el panel lateral derecho, haga clic en el objetivo principal de la aplicación en la sección Membresía objetivo
Para asegurarse de que sus fuentes sean parte del objetivo de su aplicación, asegúrese de que aparezcan en sus recursos de paquete de copias en las fases de compilación
Paso 2 - Agrega los nombres de los archivos de fuentes a tu Plist
Vaya a las Propiedades de destino de iOS personalizadas en su Sección de información y agregue una clave a los elementos de esa sección llamada Fonts provided by application
(debería verla como una opción a medida que la escribe y se configurará como una matriz). Haga clic en la pequeña flecha para abrir los elementos de la matriz y escriba los nombres de los archivos .ttf o .otf que agregó para que su aplicación sepa que estos son los archivos de fuentes que desea que estén disponibles.
NOTA - Si su aplicación falla justo después de este paso, verifique su ortografía en los elementos que agrega aquí
Paso 3 - Averigua los nombres de tus fuentes para que puedas llamarlas
Muy a menudo, el nombre de la fuente que ve su aplicación es diferente del que cree que se basa en el nombre de archivo de esa fuente, ponga esto en su código y revise el registro que hace su aplicación para ver qué nombre de fuente llamar en su código
Rápido
for family: String in UIFont.familyNames(){
print("/(family)")
for names: String in UIFont.fontNamesForFamilyName(family){
print("== /(names)")
}
}
C objetivo
for (NSString* family in [UIFont familyNames]){
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family]){
NSLog(@" %@", name);
}
}
Su registro debe verse algo como esto:
Paso 4 - Usa tu nueva fuente personalizada usando el nombre del Paso 3
Rápido
label.font = UIFont(name: "SourceSansPro-Regular", size: 18)
C objetivo
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];
Sí, puedes incluir fuentes personalizadas. Consulte la documentación en UIFont, específicamente, el fontWithName:size:
1) Asegúrate de incluir la fuente en tu carpeta de recursos.
2) El "nombre" de la fuente no es necesariamente el nombre del archivo.
3) Asegúrese de tener el derecho legal de usar esa fuente. Al incluirlo en su aplicación, también lo está distribuyendo, y necesita tener el derecho de hacerlo.
Si está utilizando xcode 4.3
, debe agregar la font
a la Build Phase
en Copy Bundle Resources
, de acuerdo con https://.com/users/1292829/arne en el hilo, Custom Fonts Xcode 4.3 . Esto me funcionó, aquí están los pasos que tomé para que las fuentes personalizadas funcionen en mi aplicación:
- Agregue la fuente a su proyecto. Arrastré y solté los archivos
OTF
(oTTF
) a un nuevo grupo que creé y acepté la opción de xcode decopying the files over to the project folder
. - Cree la matriz
UIAppFonts
con sus fuentes enumeradas como elementos dentro de la matriz. Solo losnames
, no la extensión (por ejemplo, "GothamBold
", "GothamBold-Italic
"). - Haga clic en el
project name
delproject name
en la parte superior delProject Navigator
en el lado izquierdo de la pantalla. - Haga clic en la pestaña
Build Phases
que aparece en el área principal de xcode. - Expanda la sección "
Copy Bundle Resources
" y haga clic en"+"
para agregar la fuente. - Seleccione el archivo de fuente en el navegador de archivos que se abre al hacer clic en
"+"
. - Haga esto para cada fuente que tenga que
add to the project
.
Tal vez el autor se olvidó de darle a la fuente un nombre de Mac FOND ?
- Abra la fuente en FontForge luego vaya a Elemento> Información de fuente
- Hay una opción "Mac" donde puede establecer el nombre FOND.
- En Archivo> Exportar fuente puede crear un nuevo ttf
También puede probar la opción "Apple" en el diálogo de exportación.
DESCARGO DE RESPONSABILIDAD : ¡No soy un desarrollador de iPhone!
Un aviso importante: debe usar el "nombre PostScript" asociado con la fuente, no su nombre completo o el apellido. Este nombre a menudo puede ser diferente del nombre normal de la fuente.
Una mejor solución es agregar una nueva propiedad " Fonts provided by application
" a su archivo info.plist
.
Luego, puede usar su fuente personalizada como UIFont
normal.
iOS 3.2 y posteriores soportan esto. Directamente de lo que hay de nuevo en iPhone OS 3.2 doc:
Soporte de fuente personalizado
Las aplicaciones que desean usar fuentes personalizadas ahora pueden incluir esas fuentes en su paquete de aplicaciones y registrarlas con el sistema al incluir la clave UIAppFonts en su archivo Info.plist. El valor de esta clave es una matriz de cadenas que identifica los archivos de fuente en el paquete de la aplicación. Cuando el sistema ve la clave, carga las fuentes especificadas y las pone a disposición de la aplicación.
Una vez que las fuentes se hayan configurado en la Info.plist
, puede usar sus fuentes personalizadas como cualquier otra fuente en IB o programáticamente.
Hay un hilo en curso en los foros de desarrolladores de Apple:
https://devforums.apple.com/thread/37824 (es necesario iniciar sesión)
Y aquí hay un excelente y sencillo tutorial de 3 pasos sobre cómo lograr esto (se quitó el enlace roto)
- Agregue sus archivos de fuentes personalizados a su proyecto usando Xcode como recurso
- Agregue una clave a su archivo
UIAppFonts
llamadoUIAppFonts
. - Haz de esta clave una matriz
- Para cada fuente que tenga, ingrese el nombre completo de su archivo de fuente (incluida la extensión) como elementos de la matriz
UIAppFonts
- Guardar
Info.plist
- Ahora en su aplicación, simplemente puede llamar a
[UIFont fontWithName:@"CustomFontName" size:12]
para obtener la fuente personalizada para usar con sus UILabels y UITextViews , etc.
También: asegúrese de que las fuentes estén en sus recursos de paquete de copia.
sigue este paso
1) Copia tu fuente en tu proyecto.
2) abra su archivo .plist
en modo de código fuente ... (Nota: No abra info.plist
)
3) Antes de eso, haga clic con el botón derecho en su fuente y ábrala en fontforge o editor similar, e install
en su sistema.
4) Escribe esto
<key>UIAppFonts</key>
<array>
<string>MyriadPro.otf</string>
</array>
5) Escriba este código en su class .m
[lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];
Aquí lblPoints cambiará a partir de su UILabel
¡¡Hecho!! Si su fuente aún no funciona, verifique primero la compatibilidad de sus fuentes
Edición: a partir de iOS 3.2, esta funcionalidad está incorporada. Si necesita compatibilidad con versiones anteriores a la 3.2, aún puede utilizar esta solución.
UILabel
un módulo simple que extiende UILabel
y maneja la carga de archivos .ttf. Lo publiqué en OpenSource bajo la licencia de Apache y lo puse en github Here.
Los archivos importantes son FontLabel.h
y FontLabel.m
.
Utiliza parte del código de la respuesta de Genericrich .
Busque la fuente Here.
O
Copia tu archivo de fuente en recursos
Agregue una clave a su archivo Info.plist llamado UIAppFonts. ("Fuentes proporcionadas por la aplicación)
Haz de esta clave una matriz
Para cada fuente que tenga, ingrese el nombre completo de su archivo de fuente (incluida la extensión) como elementos de la matriz UIAppFonts
Guardar
Info.plist
Ahora, en su aplicación, puede simplemente llamar a
[UIFont fontWithName:@"CustomFontName" size:15]
para obtener la fuente personalizada para usar con susUILabels
yUITextViews
, etc.
editar: Esta respuesta está inactiva a partir de iOS3.2; usar UIAppFonts
La única forma en que he podido cargar UIFont
s con éxito es a través del marco de GraphicsServices privado.
Lo siguiente cargará todas las fuentes .ttf
en el paquete principal de la aplicación:
BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
return newFontCount;
}
Una vez que se cargan las fuentes, se pueden usar como las fuentes proporcionadas por Apple:
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];
GraphicsServices puede incluso cargarse en tiempo de ejecución en caso de que la API desaparezca en el futuro:
#import <dlfcn.h>
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.apple.GraphicsServices"];
const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
if (frameworkPath) {
void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
if (graphicsServices) {
BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
if (GSFontAddFromFile)
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
}
}
return newFontCount;
}
Aunque algunas de las respuestas anteriores son correctas, he escrito un tutorial visual detallado para personas que todavía tienen problemas con las fuentes.
Las soluciones anteriores que le indican que agregue la fuente a la lista y la use
[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];
son los correctos Por favor, ahora utiliza cualquier otra forma hackish. Si aún tiene problemas para encontrar nombres de fuentes y agregarlos, aquí está el tutorial:
Hice todo lo posible, pero las nuevas fuentes no aparecen, así que encontré la solución:
Cuando arrastre los archivos fot (otf o ttf) NO olvide marcar la casilla debajo de "Agregar a objetivos".
Después de hacer eso aparecerá su fuente y todo funcionará bien.
Sí, puedes usar fuentes personalizadas en tu aplicación.
paso a paso siguiendo allí:
Agregue sus archivos de fuentes personalizados a su proyecto en archivos de soporte
Agregue una clave a su archivo Info.plist llamado UIAppFonts.
Haz de esta clave una matriz
Para cada fuente que tenga, ingrese el nombre completo de su archivo de fuente (incluida la extensión) como elementos de la matriz UIAppFonts
Guardar Info.plist Ahora en su aplicación, simplemente puede llamar a [UIFont fontWithName: @ "su Nombre de fuente personalizado" tamaño: 20] para obtener la fuente personalizada para usar con sus UILabels después de aplicar esto si no está obteniendo la fuente correcta, luego haga doble clic en la fuente personalizada, y vea cuidadosamente el nombre de la fuente en la parte superior superior y copie esta fuente, pegue, aquí [UIFont fontWithName: @ "aquí pasado su nombre de fuente personalizado" tamaño: 20]
espero que obtengas la respuesta correcta
Sí, puedes usar fuentes personalizadas en tu aplicación.
paso a paso siguiendo allí:
- Agregue sus archivos de fuentes personalizados a su proyecto en archivos de soporte
- Agregue una clave a su
Info.plist
archivo llamado UIAppFonts. - Haz de esta clave una matriz
- Para cada fuente que tenga, ingrese el nombre completo de su archivo de fuente (incluida la extensión) como elementos de la matriz UIAppFonts
- Guardar
Info.plist
ahora en su aplicación, simplemente puede llamar[UIFont fontWithName:@"your Custom font Name" size:20]
para obtener la fuente personalizada para usar con suUILabels
después de aplicar esto si no está obteniendo la fuente correcta, haga doble clic en la fuente personalizada y verá que el nombre de la fuente del lado superior se acerca y copia esta fuente, péguela, aquí [UIFont fontWithName:@" here past your Custom font Name" size:20]
espero que obtenga la respuesta correcta
Puede agregar los archivos "FONT" requeridos dentro de la carpeta de recursos. Luego vaya al Info.plist
archivo de Proyecto y use la CLAVE "Fuentes proporcionadas por la aplicación" y el valor como "NOMBRE FUENTE".
Entonces puedes llamar al método. [UIFont fontwithName:@"FONT NAME" size:12];