Así que tengo este código que se debe cambiar la barra de navegación de la fuente del título, pero doenst

    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont
                                                                       fontWithName:_dataManager.optionsSettings.fontString size:14], NSFontAttributeName,
                            [UIColor whiteColor], NSForegroundColorAttributeName, nil];

[[UINavigationBar appearance] setTitleTextAttributes:attributes];

Cambiar el botón atrás de la fuente con este código funciona bien.

   //set backbutton font
NSDictionary *normalAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                  [UIFont fontWithName:_dataManager.optionsSettings.fontString size:15], NSFontAttributeName,
                                  nil];
[[UIBarButtonItem appearance] setTitleTextAttributes:normalAttributes
                                            forState:UIControlStateNormal];

18 Comentarios

  1. 232

    La forma correcta de cambiar la fuente del título (y el color) es:

    [self.navigationController.navigationBar setTitleTextAttributes:
     @{NSForegroundColorAttributeName:[UIColor redColor],
    NSFontAttributeName:[UIFont fontWithName:@"mplus-1c-regular" size:21]}];

    Edición: Swift 4.2

    self.navigationController?.navigationBar.titleTextAttributes =
    [NSAttributedString.Key.foregroundColor: UIColor.red,
     NSAttributedString.Key.font: UIFont(name: "mplus-1c-regular", size: 21)!]

    Edición: Swift 4

    self.navigationController?.navigationBar.titleTextAttributes =
    [NSAttributedStringKey.foregroundColor: UIColor.red,
     NSAttributedStringKey.font: UIFont(name: "mplus-1c-regular", size: 21)!]

    Swift 3:

    self.navigationController?.navigationBar.titleTextAttributes = 
    [NSForegroundColorAttributeName: UIColor.redColor(),
     NSFontAttributeName: UIFont(name: "mplus-1c-regular", size: 21)!]
    • El tamaño se mantiene el mismo sin importar el valor de trato
    • Sí, me di cuenta de que mi fuente no se había cargado correctamente. Todavía no puedo entender por qué, he importado OpenSans de Luz y OpenSans Regular de la misma manera, sólo OpenSans de Luz parece ser utilizable…
    • El Obj-C código falta un corchete de cierre. Debe ser: [auto.navigationController.navigationBar setTitleTextAttributes: @{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont fontWithName:@»mplus-1c-regular» tamaño:21]}];
    • ingresa en el enlace para cambiar backBarButton fuente: stackoverflow.com/a/16538596/5967144
  2. 51

    No hay nada de malo con las otras respuestas. Sólo estoy compartiendo el guión de la versión para la configuración de la fuente.

    1. Seleccione la Barra de Navegación dentro de su Navegación Controlador de

    iOS cambiar de navegación de la barra de título de la fuente y el color

    2. Cambiar la Fuente del Título en los Atributos del Inspector de

    iOS cambiar de navegación de la barra de título de la fuente y el color

    (Es probable que necesite cambiar la Barra de Tinte para la Barra de Navegación antes de Xcode recoge el nuevo tipo de letra)

    Notas (Advertencias)

    Comprobado que eso no funciona en Xcode 7.1.1+. (Ver los ejemplos de abajo)

    1. Usted necesita para cambiar la barra de navegación tinte antes de que la fuente se lleva a efecto (parece un error en Xcode; usted puede cambiar a su estado predeterminado y fuente de palo)
    2. Si usted elige un sistema de fuente ~ asegúrese de asegúrese de que el tamaño no es
      0.0 (de lo Contrario el nuevo tipo de letra será ignorado)

    iOS cambiar de navegación de la barra de título de la fuente y el color

    1. Parece que esto funciona sin problema cuando sólo una barra de navegación en la vista
      jerarquía. Parece que la secundaria barras de exploración en la misma pila son ignorados. (Tenga en cuenta que si muestran el maestro de navegación controlador de la barra de navegación de todos los otros personalizado navBar se ignora la configuración).

    Errores (deux)

    Algunas de estas se repite, lo que significa que es muy probable que vale la pena destacar.

    1. A veces el guión xml se corruptos. Esto requiere que
      una revisión de la estructura en el Guión gráfico como el Código Fuente, modo (botón derecho del ratón
      el archivo de guión gráfico > Abrir Como …)
    2. En algunos casos la navigationItem etiqueta asociada con el usuario definido en tiempo de ejecución atributo se establece como un xml
      hijo de la vista de la etiqueta en lugar del controlador de vista de etiqueta. Si es así
      sacarla de entre las etiquetas para su correcto funcionamiento.
    3. Toggle de la barra de exploración de Tinte para garantizar el tipo de letra personalizado es
      usa.
    4. Verificar el parámetro de tamaño de la fuente a menos que se use una dinámica de fuentes
      estilo
    5. Vista de la jerarquía de reemplazar la configuración. Parece que una fuente
      por pila es posible.

    Resultado

    iOS cambiar de navegación de la barra de título de la fuente y el color

    Muestras

    Manejo De Fuentes Personalizadas

    Nota ~ Un bonita lista de verificación se puede encontrar desde el Código Con Chris sitio web y usted puede ver la muestra de descarga del proyecto.

    Si usted tiene su propia fuente y desea usar en su guión, entonces hay un conjunto digno de respuestas en las siguientes ASÍ, Pregunta. Una respuesta identifica estos pasos.

    1. Obtener personalizada archivo de fuente(.ttf,.ttc)
    2. Importar la fuente de los archivos a su proyecto de Xcode
    3. En la app-info.plist,agregar una clave denominada Fuentes proporcionadas por
      aplicación.Es un tipo de matriz , agregar todos los de su fuente de los nombres de archivo a la
      matriz de,nota:incluye la extensión de archivo.
    4. En el guión , en el NavigationBar ir para el Atributo
      Inspector,haga clic en el icono de la derecha el botón de la Fuente y seleccione el área.En el
      emergente del panel , elija la Fuente a la Costumbre, y elija la Familia de usted
      incrustadas nombre de la fuente.

    Fuente Personalizada Solución

    Así Xcode, naturalmente, parece que puede manejar fuentes personalizadas en UINavigationItem pero esa característica no es sólo la actualización correctamente (La fuente seleccionada es ignorado).

    iOS cambiar de navegación de la barra de título de la fuente y el color

    Para solucionar este:

    Es una manera de arreglar con el guión y la adición de una línea de
    código: en Primer lugar añadir un UIView (UIButton, UILabel, o algún otro UIView
    subclase) a la Vista Controlador (No el Elemento de Navegación…Xcode es que actualmente no permite hacer eso). Después de agregar el control
    puede modificar la fuente en el guión gráfico y agregar una referencia como
    de corriente a la Vista del Controlador. Simplemente asignar ese punto de vista a la
    UINavigationItem.titleView. También se podría establecer el nombre del texto en el código
    si es necesario. Errores Reportados (23600285).

    @IBOutlet var customFontTitleView: UIButton!
    
    //Sometime later...    
    self.navigationItem.titleView = customFontTitleView
  3. 21

    Intente esto:

    NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                    [UIColor whiteColor],NSForegroundColorAttributeName,
                                    [UIColor whiteColor],NSBackgroundColorAttributeName,nil];
    self.navigationController.navigationBar.titleTextAttributes = textAttributes;
  4. 13

    Mi código Swift para cambiar de Navegación de la Barra de título:

    let attributes = [NSFontAttributeName : UIFont(name: "Roboto-Medium", size: 16)!, NSForegroundColorAttributeName : UIColor.whiteColor()]
    self.navigationController.navigationBar.titleTextAttributes = attributes

    Y si quieres cambiar el fondo de la fuente también entonces tengo esto en mi AppDelegate:

    let attributes = [NSFontAttributeName : UIFont(name: "Roboto-Medium", size: 16)!, NSForegroundColorAttributeName : UIColor.whiteColor()]
    UIBarButtonItem.appearance().setTitleTextAttributes(attributes, forState: UIControlState.Normal)
  5. 4

    Aquí hay una respuesta para su pregunta:

    Mover el código a continuación el método porque la navegación de la barra de título actualizado después de ver cargado. He intentado añadir código anterior en el viewDidLoad no funciona, funciona bien en viewDidAppear método.

      -(void)viewDidAppear:(BOOL)animated{}
  6. 3

    Alguien necesita un Swift 3 versión. redColor() ha cambiado simplemente red.

    self.navigationController?.navigationBar.titleTextAttributes =
            [NSForegroundColorAttributeName: UIColor.red,
             NSFontAttributeName: UIFont(name: "{your-font-name}", size: 21)!]
  7. 3

    AÑADIR una sola línea de código en su Aplicación a los delegados Hicieron Terminar de Lanzamiento. Va a cambiar la Fuente, el color de la barra de navegación en la aplicación.

    UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font: UIFont(name: "YOUR FONT NAME", size: 25.0)!]
  8. 2

    Es un poco más legible uso de literales:

    self.navigationController.navigationBar.titleTextAttributes = @{
                                                                  NSFontAttributeName:[UIFont fontWithName:@"mplus-1c-regular" size:21],
                                                                  NSForegroundColorAttributeName: [UIColor whiteColor]
                                                                  };
  9. 2

    Yo tenía un problema, porque cuando he intentado cambiar mi NavigationItem título mediante programación yo no era capaz de encontrar a mi familia de la fuente (probado muchas cosas pero imposible hacer que se ejecute correctamente) así que he encontrado una solución muy agradable y fácil en el guión gráfico.

    1. En primer lugar hay que añadir en el marco de la Navegación de un Elemento de la vista de en medio y no se olvide de establecer fondo de color claro para que tengan el mismo color de la navBar:

    iOS cambiar de navegación de la barra de título de la fuente y el color

    1. A continuación, agregue una Etiqueta que se puede editar (establecer el color del texto, fuente, tamaño…) en este punto de vista
    2. Agregar restricciones a la etiqueta (Top = 0, Inferior = 0, a la cola = 0 y Líder = 0) para Ver y centro de texto de etiqueta

    Finalmente, usted debe tener algo como que en el esquema del documento:

    iOS cambiar de navegación de la barra de título de la fuente y el color

    Y algo así como que en su ViewController:

    iOS cambiar de navegación de la barra de título de la fuente y el color

    Espero que le puede ayudar.

  10. 2

    Swift:-

    self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: UIFont(name:"Love Nature", size: 40)!]
  11. 1

    Esta una alternativa a Swift 4 (respuesta ya que @Josh):

    let titleTextAttributed: [NSAttributedStringKey: Any] = [.foregroundColor: UIColor.red, .font: UIFont(name: "AvenirNext-Regular", size: 20) as Any]
    navigationController?.navigationBar.titleTextAttributes = titleTextAttributed
  12. 1

    iOS 11

    iOS cambiar de navegación de la barra de título de la fuente y el color

    Objective-C

    if (@available(iOS 11.0, *)) {
        self.navigationController.navigationItem.largeTitleDisplayMode =  UINavigationItemLargeTitleDisplayModeAlways;
        self.navigationController.navigationBar.prefersLargeTitles = true;
    
    //Change Color
        self.navigationController.navigationBar.largeTitleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};
    
    } else {
        //Fallback on earlier versions
    }
  13. 1

    Para Objective-C para establecer la Fuente y el Color

    - (void)_setup {
        NSDictionary *barButtonTitleAttributes = @{
                                                   NSForegroundColorAttributeName : [UIColor whiteColor],
                                                   NSFontAttributeName :[UIFont fontWithName:@"Lato-Regular" size:15.0]
                                                   };
        [self.navigationBar setTitleTextAttributes:barButtonTitleAttributes];
    
    }
  14. 0

    Aquí hay una respuesta para Swift 4 😁:

        let textAttributes:[String:Any]? = [NSAttributedStringKey.foregroundColor.rawValue:UIColor.blue, NSAttributedStringKey.font.rawValue:UIFont(name:"Avenir Next", size:20)!]
        navigationController?.navigationBar.titleTextAttributes = textAttributes
  15. 0

    No te olvides de añadir la prima de los valores de las claves para evitar errores de compilación.

        let textAttributes:[NSAttributedStringKey: Any] = [NSAttributedStringKey(rawValue: NSAttributedStringKey.foregroundColor.rawValue):UIColor.blue, NSAttributedStringKey(rawValue: NSAttributedStringKey.font.rawValue):UIFont(name:"OpenSans", size: 17)!]
        navigationController?.navigationBar.titleTextAttributes = textAttributes
  16. 0

    Swift 4.2

    self.navigationController?.navigationBar.titleTextAttributes =
            [NSAttributedString.Key.foregroundColor: UIColor.white,
             NSAttributedString.Key.font: UIFont(name: "LemonMilklight", size: 21)!]
  17. 0

    Añadir esta extensión

    extension UINavigationBar {
        func changeFont() {
            self.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: UIFont(name:"Poppins-Medium", size: 17)!]
        }
    }

    Agregar la siguiente línea en viewDidLoad()

    self.navigationController?.navigationBar.changeFont()
  18. -1

    De trabajo en swift 3.0
    Para cambiar el color del título de la que usted necesita para agregar titleTextAttributes como este

            let textAttributes = [NSForegroundColorAttributeName:UIColor.white]
            self.navigationController.navigationBar.titleTextAttributes = textAttributes
    
    For changing navigationBar background color you can use this
            self.navigationController.navigationBar.barTintColor = UIColor.white
    
    For changing navigationBar back title and back arrow color you can use this
           self.navigationController.navigationBar.tintColor = UIColor.white

Dejar respuesta

Please enter your comment!
Please enter your name here