Je travaille sur une application dans laquelle je dois conserver une barre de navigation. Lorsque j'écris un titre sur la barre, l'heure et le titre se rapprochent un peu. Je voulais augmenter la hauteur du bar afin qu'il puisse avoir un peu de répit.
sélectionnez votre ViewController -> sélectionnez votre élément de navigation -> Invite -> Ajouter espace le ) augmente le height
de **Navigation bar**
par programme
Ajoutez ceci dans la méthode viewWillAppear ou viewDidAppear
Objective-C
[self.navigationController.navigationBar setFrame:CGRectMake(0, 0, self.view.frame.size.width,80.0)];
Rapide
self.navigationController.navigationBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 80.0)
Swift-3
self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 80.0)
iOS 11
Objectif C
for (UIView *subview in self.navigationController.navigationBar.subviews) {
if ([NSStringFromClass([subview class]) containsString:@"BarBackground"]) {
CGRect subViewFrame = subview.frame;
// subViewFrame.Origin.y = -20;
subViewFrame.size.height = 100;
[subview setFrame: subViewFrame];
}
}
Rapide
for subview in (self.navigationController?.navigationBar.subviews)! {
if NSStringFromClass(subview.classForCoder).contains("BarBackground") {
var subViewFrame: CGRect = subview.frame
// subViewFrame.Origin.y = -20;
subViewFrame.size.height = 100
subview.frame = subViewFrame
}
}
Veuillez vous référer à l’approche Apple pour la barre de navigation étendue ici),
https://developer.Apple.com/library/content/samplecode/NavBar/Introduction/Intro.html
CETTE SOLUTION NE FONCTIONNE PLUS DANS Xcode 8.x.x et versions ultérieures!
vous pouvez également augmenter la hauteur sans créer la navigation personnalisée suivez les étapes suivantes
Étape 1 Sélectionnez la barre de navigation dans Storyboard ou XIB
Étape 2 Copiez l'ObjectID de l'inspecteur d'identité
Étape 3 Ouvrez Storyboard/XIB en tant que code source
Étape 4 Recherchez ObjectID dans le code source après ObjectID dans la recherche
Étape 5 Modifiez la hauteur! c'est tout
J'espère que cela vous aidera
Ajoutez l'extension suivante à votre projet:
import UIKit
extension UINavigationBar {
override open func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width: UIScreen.main.bounds.size.width, height: 80.0)
}
}
Apple propose ne pas redimensionner navigationBar
lui-même, mais supprime l'ombre de la barre et ajoute une vue personnalisée sous votre navigationBar
. Cela peut fonctionner dans la plupart des cas. Vérifiez les échantillons d'Apple.
Ajouter ceci dans la méthode viewWillAppear
CGFloat height = 80;
[self.navigationController.navigationBar setFrame:CGRectMake(0, 0,
self.view.frame.size.width,height)];
si elle augmente d'abord et se réduit à la hauteur d'origine, ajoutez ce code dans la méthode viewDidAppear
Vous ne pouvez pas changer la hauteur de la valeur par défaut NavigationBar
si je ne me trompe pas.
Bien que vous puissiez créer un NavigationBar
personnalisé et lui ajouter une hauteur personnalisée.
Nous devons modifier la hauteur de la barre de navigation à chaque fois que la vue est affichée.Pour mettre le code sur viewWillAppear
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 80)
}
nous pouvons définir la largeur comme largeur de la vue et modifier la hauteur à votre guise.
Je voudrais masquer la barre de navigation et en implémenter une personnalisée. De cette façon, vous pourrez le personnaliser exactement comme vous le souhaitez.
Il existe un tutoriel simple expliquant comment faire cela: https://www.codeschool.com/blog/2014/11/11/ios-app-creating-custom-nav-bar/