ios - probar - tutoriales codigofacilito
La fuente personalizada Xcode 8 no aparece en el constructor de interfaz (7)
Estoy tratando de usar una fuente personalizada (Bebas Neue) en mi aplicación iOS. Los pasos que tomé son:
- Copie los archivos .otf al proyecto.
- Confirme que los archivos .otf hayan establecido el proyecto como objetivo.
- Se agregaron los archivos .otf en ''Fuentes proporcionadas por la aplicación'' en plist.
- En las Fases de compilación, los archivos .otf se encuentran en ''Copiar recursos de paquete''.
- Instala la fuente en mi Mac.
- Intente imprimir todas las fuentes disponibles pero no puedo ver mi fuente personalizada.
El código que utilicé:
for name in UIFont.familyNames() {
println(name)
if let nameString = name as? String
{
println(UIFont.fontNamesForFamilyName(nameString))
}
}
- Tratando de configurar la fuente en el código y funcionó.
El código que utilicé:
textLabel?.font = UIFont(name: "BebasNeueRegular", size: 14)
- Pero no puedo configurarlo en el constructor de interfaz. ¿Alguna idea?
Capturas de pantalla:
Es fácil y simple ahora, probado en Xcode 9.2 y swift 4
Pasos para agregar fuente a su Xcode
Seleccione su UILabel, UITextField o lo que sea debajo de la sección de fuentes y siga
Paso 1
Seleccione el menú de configuración desde la esquina izquierda de la pantalla de selección de fuente. Y elija la opción del administrador de fuentes.
Paso 2
Haga clic en el botón Agregar como se indica a continuación.
Paso 3
Seleccione la carpeta que contiene su fuente. Se cargará en la lista de fuentes de XCode.
Pasos para agregar fuentes a su proyecto
No olvide agregar una descripción a su plist con las Fonts provided by application
clave Fonts provided by application
y colocar los archivos de fuentes dentro de los recursos del paquete de copias bajo la configuración del objetivo del proyecto.
¡Sí! eso es .. njoy ..
Cuando uso la misma fuente (Bebas Neue), experimento exactamente el mismo problema: la fuente no aparece en la lista de fuentes para los controles Plain
.
Lo hace para los controles Attributed
, como se describe en la actualización 2 en la publicación de Joes, pero en realidad está cambiando el texto attributedText
lugar del text
normal, lo que puede generar un comportamiento no deseado. Por ejemplo, tendrá que NSMutableAttributedString
con NSMutableAttributedString
para cambiar el texto o el color del texto en el tiempo de ejecución.
Hice una investigación sobre este tema. Utilicé FontLab Studio para modificar la fuente y hacer algunas pruebas. Utilicé la versión 1.400 de Bebas Neue (del 15 de septiembre de 2014) de dafont.com .
- Tal vez el archivo de fuente estaba corrupto de alguna manera. Re-guardado como .otf y .ttf: No funcionó.
- Tal vez los metadatos de la fuente estaban corruptos. Copié todos los glifos en una nueva fuente y llamé Bebas Neue: No funcionó.
- Cambié el nombre de la fuente de Bebas Neue a BN: ¡Funciona! ¿Pero por qué?
- Tal vez no puedas usar "Neue" en un nombre de fuente (ya que Helvetica Neue fue la fuente del sistema iOS hasta iOS 8). Se cambió el nombre de la fuente a Prueba Neue: Todavía funciona.
- ¿Quizás no puedas usar "Bebas" en un nombre de letra? Se cambió el nombre de la fuente a Bebas: Aún funciona.
- Qué ... Solo para estar seguro, cambié el nombre de la fuente a Bebas Neue: no funciona de nuevo.
- También probé BebasNeue: Tampoco funcionó.
Luego cambié el nombre a Bebas Neue Whatever: Funciona.
Realmente no entiendo por qué está sucediendo esto. ¿Apple o Xcode no quieren que uses "Bebas Neue" o "BebasNeue" en Interface Builder? Tenía el Bebas Neue normal instalado. ¿Tal vez la referencia se corrompió? Realmente no puedo decir. Tal vez alguien en un sistema limpio puede probar si Bebas Neue funciona en su Xcode.
De todos modos, logré mi objetivo: poder utilizar Bebas Neue (nombré la versión final "Bebas Neue MyAppName") para etiquetas y botones de estilo sencillo, así puedo diseñar mi aplicación tal como está y no tener que jugar con ella. cadenas atribuidas.
En realidad, puede ir a fuentes atribuidas, hacer clic en la ventana de fuentes personalizada. Haga clic en el engranaje en la esquina superior izquierda y haga clic en la opción administrar fuentes. Debe aparecer una ventana emergente en la parte superior y debe haber un signo más para permitirle agregar fuentes. Simplemente elija la fuente personalizada que descargó como xyz.tff y luego debería agregarse.
¡Importante observar que el archivo ttf debe ser referenciado en la p-list así como en su directorio de proyecto!
Era un error antiguo desde Xcode 3.x:
hay un error / problema conocido con IB en XCode 3.x con fuentes no estándar e Interface Builder. Por lo general, las fuentes personalizadas deben configurarse programáticamente (a través de [UIFont fontWithName:])
Hay algunos trabajos como this con categories
y User Defined Runtime Attribute
.
Finalmente, encontré la causa raíz de los problemas con las fuentes Bebas Neue.
No recuerdo dónde descargué las fuentes, pero las fuentes Bebas Neue son inconsistentes .
Descargar, es decir, una aplicación llamada Typelight
Abra la fuente no regular , pero es decir, negrita con Typelight
.
Necesita corregir la mayoría de las fuentes Bebas Neue .
Tuve un problema similar
añade una fuente personalizada y también la asigna a UILabel
todo funciona bien, pero después de algunas veces no funciona como se esperaba.
Probando toda la solución pero nada funciona para mí. Así que aquí está mi solución, una vez más yendo a UILabel
anterior (ya tiene una fuente personalizada recién agregada) seleccione-> etiqueta-> seleccione la fuente recién agregada. Verifique otros controles de UI Fuente.
ahora está funcionando bien.
Espero que esto ayude a nuevosDevs ...
Pruebe los siguientes pasos: Código probado en Swift 3
.
Paso 1 : agregue su fuente personalizada en su proyecto (asegúrese de que esté marcada Agregar al objetivo ). Estoy usando la fuente "PermanentMarker.ttf", "Pecita.otf" y "AROLY.ttf" como fuente de prueba.
Nota: Tipo de fuente compatible ttf y otf (Ambos tipos de fuentes deberían funcionar)
Paso 2 : modifica el archivo application-info.plist. Agregue la clave "Fuentes proporcionadas por la aplicación" en una nueva fila y agregue "PermanentMarker.ttf" como un nuevo elemento en la matriz " Fuentes proporcionadas por la aplicación ".
Tu plist debería verse así
Ahora la fuente estará disponible en Interface Builder. Para usar la fuente personalizada en el código, necesitamos referirnos a ella por su nombre, pero el nombre a menudo no es el mismo que el nombre de la fuente
Ahora, puede acceder a la fuente personalizada desde su viewController. Estoy probando la fuente colocando una UIlabel en el guión gráfico como se muestra a continuación.
Actualización 2: Working Solution
Después, importó su fuente personalizada y actualizó su plist
.select de su storyBoard
, storyBoard
Attributes Inspector
en Label
> Text type
> select to Attributed
y elija su custom font
de la lista.
Salida:
Actualización 1
Si su fuente personalizada aún no figura en la Xcode font list
compruebe el enlace relacionado a su problema
Nota: Aún así, puede asignar BebasNeue
o custom font
programática a su etiqueta o botón, etc. incluso no se muestra en su interface Builder
. interface Builder
. Si tiene problemas para configurar la fuente en su objeto programáticamente, siga el método a continuación.
Asignar fuente a UILabel:
label?.font = UIFont(name: "BebasNeue", size: 35) // Set to any size
Asignar fuente a UIButton:
button.titleLabel?.font = UIFont(name: "BebasNeue", size: 35)
Asignar fuente a UITextField:
textField.font = UIFont(name: "BebasNeue", size: 25)
Asignar fuente a UINavigationBar:
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "BebasNeue", size: 25)!, NSForegroundColorAttributeName: UIColor.red]
Asignar fuente a UIToolBar:
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "BebasNeue", size: 25.0)!], for: UIControlState.normal)
Salida: