Duplicaté possible: strong>
Comment ajouter une image de fond sur la barre de navigation iPhone? p> blockQuote>Je cherche un moyen d'avoir une barre de navigation personnalisée et de disposer d'une barre de navigation personnalisée pour y parvenir. Je cherchais à faire cela, mais je n'ai pas trouvé de solution. Si quelqu'un a la solution, l'aide est très appréciée. P>
4 Réponses :
Vous pouvez simplement ajouter une sous-vision (un UIImageView) à la barre de navigation, qui est juste une sous-classe UIView.
UINavigationBar nb = [[UINavigationBar alloc]init]; [nb addSubview: foo]; [nb release];
(complément à la réponse d'Andrew Johnson)
La publication Apple.com Linked Apple.com comprend 3 ou 4 solutions différentes, dont la plupart ne fonctionnent que "la moitié". Je pense que le plus élégant / efficace d'eux est celui-ci: p> Cependant ... ce n'est pas une bonne pratique objc à OD qui comme catégorie (devrait être une substitution) et cela a des problèmes de son propre. p> Donc, une solution plus générale et plus puissante est ici: p> http://samsoff.es/posts/customize-uikit-with-method-swizzling p> p>
Merci de me lier à Adam :) Vous avez raison que les méthodes primordiales avec catégories sont une très mauvaise pratique.
Quelqu'un a-t-il descendu cela sans explication? Pas certain de pourquoi. Bien que j'ajouterais: toute cette question (et la plupart des réponses) sont uniquement iOS 2/3/4 uniquement - iOS 5 a un tout nouveau système de faire cela. La réponse fonctionne toujours pour les personnes qui font iOS4.
Depuis iOS5, vous pouvez facilement définir un arrière-plan personnalisé, avec la méthode SetbackImage: FurmisRetrics: em>
Mais vous devez vérifier si le téléphone de l'utilisateur a le bon système d'exploitation. if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
{
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"texture.png"]
forBarMetrics:UIBarMetricsDefault];
}
Jusqu'à ce qu'un utilisateur qui ne fonctionne pas iOS5 exécute votre application
Oui, mais il y a un chèque pour cela. Vous pouvez faire autre chose dans la clause d'origine.
Copiez-le dans ViewDidLoad. Il vérifiera l'iOS 5 et utilisera la méthode préférée, sinon elle ajoutera une sous-Sous-site à la barre NAV pour les versions iOS <5.0. Cela fonctionnera à condition que votre image de fond personnalisée n'a pas de transparence.
XXX PRE> P>
Il y a plus de solutions de solutions alternatives ici: Stackoverflow.com/questions/1692487/...