Pregunta

¿Hay alguna manera de cambiar la fuente del sistema para toda una aplicación?

quiero definir el tipo de letra para toda la aplicación para que yo no tengo que ir a etiquetas individuales o fuentes individuales para cambiarlo. Me gustaría una definición universal que va a cambiar todas las fuentes que existen dentro de la aplicación. ¿Cómo puedo hacer esto?

¿Fue útil?

Solución

Hacer una clase llamada Constants.h compartida o algo así. En ella haga lo siguiente:

#define kStandardFont [UIFont systemFontOfSize:20] 

Por supuesto ajustar la fuente a ser lo que necesita que sea. Entonces, cada vez que hay que usarla (en una etiqueta o lo que sea) hacer esto:

#import "Constants.h"
…
…
… 
[label setFont:kStandardFont];

Otros consejos

Puede utilizar Pixate el estilo de su aplicación. Al utilizar pixate, puede establecer los atributos de estilo de sus elementos de interfaz de usuario a través de CSS. De esta manera puede globalmente configurar sus UILabels y UITextField etc. utilizar su fuente personalizada. Esto es, con mucho, la mejor manera de forma global su estilo de fuente.

En mi aplicación que tuve que usar "Open Sans" y configurar todos mis UILabels, UITextFields y UITextViews utilizar esa fuente:

En su "default.css"

label {
    font-family: "Open Sans";
}

text-field {
    font-family: "Open Sans";
}

text-view {
    font-family: "Open Sans";
}

introducir descripción de la imagen aquí

Creo que la respuesta correcta es: No hagas eso! Averiguar por qué cree que usted quiere hacer eso, y luego encontrar alguna otra manera de lograr los mismos fines. Y la gente aquí sería feliz de ayudar a descubrir otra manera de esos extremos. (Por ejemplo eso es lo que sugiere la respuesta de Coneybeare eficacia.)

Dicho todo esto ... no hay manera en el SDK oficial para cambiar la fuente del sistema. Usted puede ser capaz de hacer algunos avances por Swizzling de UIFont systemFontWithSize: Método - ver http: // www .cocoadev.com / index.pl? MethodSwizzling para más información sobre swizzling método. Hay que tener en cuenta (a) esto sólo va a cambiar la apariencia de cualquier cosa que utiliza systemFontWithSize: para obtener su fuente, (b) esto podría romper todo tipo de cosas que dependen de la que tiene el tamaño de la fuente original, y (c) esto bien podría consigue que rechazó desde la App Store.

Todas estas advertencias se suman a la pregunta: ¿Qué es lo que realmente tratando de lograr con este

Parece que funciona, al menos para UILabels:

@interface UIFont (mxcl)
@end
@implementation UIFont (mxcl)
+ (id)systemFontOfSize:(CGFloat)sz {
    return [UIFont fontWithName:@"AmericanTypewriter" size:sz]
}
+ (id)boldSystemFontOfSize:(CGFloat)sz {
    return [UIFont fontWithName:@"AmericanTypewriter-Bold" size:x]
}
@end

No - es por eso que se llama sistema fuente, y no el aplicación de fuente

.

Fuentes son específicos para cada control de la interfaz de usuario. Por ejemplo, cada UILabel tiene su propia configuración de la fuente.

Si desea cambiar la fuente de todos los controles, que tendrá que cambiar a todos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top