una tutoriales tutorial probar primera para gratis espaƱol desde curso crear como codigofacilito cero apps app aplicacion ios swift xcode custom-font

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:

  1. Copie los archivos .otf al proyecto.
  2. Confirme que los archivos .otf hayan establecido el proyecto como objetivo.
  3. Se agregaron los archivos .otf en ''Fuentes proporcionadas por la aplicación'' en plist.
  4. En las Fases de compilación, los archivos .otf se encuentran en ''Copiar recursos de paquete''.
  5. Instala la fuente en mi Mac.
  6. 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)) } }

  1. Tratando de configurar la fuente en el código y funcionó.

El código que utilicé:

textLabel?.font = UIFont(name: "BebasNeueRegular", size: 14)

  1. 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: