Comment faire pour supprimer UINavigationBar ombre interne dans iOS 7?
Je suis en train de mettre la barre de navigation en dessous de l'autre pour la faire ressembler à l'un de haut de la barre de navigation. Mais dans iOS 7 UINavigationBar a maintenant ombre interne sur le dessus et sur le fond de celui-ci. J'ai vraiment besoin de l'enlever. Mais je n'ai pas trouvé de solution. Il ressemble à l'ombre est prerendered, mais en fait, il apparaît lentement à environ 0,4 seconde après le point de vue s'affiche.
J'ai essayé presque tout, mais l'ombre est toujours là. J'ai enlevé la ligne horizontale en dessous de la barre avec ce code:
for (UIView *view in [[[self.navigationController.navigationBar subviews] objectAtIndex:0] subviews]) {
if ([view isKindOfClass:[UIImageView class]]) view.hidden = YES;
}
Mais je peux pas comprendre comment faire pour supprimer l'ombre. Merci beaucoup!
J'ai essayé ceci:
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
Mais ce code n'a même pas de supprimer la ligne horizontale en dessous de la barre (cette méthode nécessite une image de fond personnalisée). J'utilise Xcode Version 5.0 (5A11365x)
- stackoverflow.com/tags/ios7/info, deuxième alinéa.
- votre lien ne doit pas fournir toute information utile (plus?). Je suis intéressé à en savoir plus sur pourquoi c'est une mauvaise idée.
- plus est correct. J'ai posté le commentaire en Août, avant d'iOS 7 a été publié. Le deuxième paragraphe dans le lien indiqué que iOS 7 est sous NDA. Comme il n'est plus sous NDA et il n'y a également qu'un seul paragraphe. La réponse ci-dessous est d'accord avec le fait que de répondre à cette tandis que sous NDA n'est pas une bonne idée.
- ah ouais NDA. J'ai pris votre commentaire pour dire que la suppression de la ligne était une mauvaise idée. Merci.
- Merci pour l'astuce sur la façon de supprimer la ligne en vertu de la barre de navigation!
- Utile: stackoverflow.com/questions/19226965/...
Vous devez vous connecter pour publier un commentaire.
La "horizontale" de la ligne au bas de la barre de navigation est tout simplement c'est shadowImage.
Il peut tout simplement être supprimés par l'application d'un vide
UIImage
.Selon la documentation, vous devez également définir une image de fond personnalisée:
Je ne devrais vraiment pas comme CaptJak a fait remarquer, mais pour quelqu'un d'autre qui coince:
code
auto.navigationController.navigationBar.translucide = NON;code
Mais ce n'est pas ce que je suis à la recherche d'if([view2 isKindOfClass:[UIImageView class]] && view2.frame.size.height < 2)
Dans Swift (testé sur iOS9)
Si votre support de l'application uniquement iOS 6.0+, vous pouvez simplement ajouter la ligne ci-dessous:
J'ai eu un problème similaire, où j'ai voulu supprimer la 1px ligne et l'ombre de la barre de navigation sur iOS7.
Dans mon cas, j'avais besoin d'un 3 points épaisseur de la ligne verte en bas de la barre de navigation.
Si il y a une solution pour se débarrasser de la 1px ligne au bas de la barre de navigation qui n'implique pas la traversée des sous-vues, je ne sais pas, mais il existe un moyen d'ajouter un point de vue qui se cache cette ligne comme suit (au moins la couleur de la ligne peut être modifié de cette façon).
Vous pouvez facilement utiliser ce
UInavigationBar
catégorie appeléeUINavigationBar-Addition
trouvé iciJ'ai utilisé la solution décrite dans ce réponse, mais je n'arrivais pas à me débarrasser de la 1Px ligne sous navigationBar