iOS7 - Changement UINavigationBar couleur de la bordure
Est-il possible de changer la bordure grise-couleur du fond de la UINavigationBar dans iOS7?
J'ai déjà essayé de l'enlever à la frontière, mais ce n'est pas de travail:
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
Merci!
- Cela aidera à: stackoverflow.com/questions/19226965/...
InformationsquelleAutor MappleDev | 2013-09-30
Vous devez vous connecter pour publier un commentaire.
Cela vous aidera 🙂
Vous êtes en train de supprimer l'ombre, mais pas de la frontière, vous devez effectuer les opérations suivantes:
À modifier la frontière utiliser une image de 2 pixels de la largeur de ligne:
setShadowImage
il ne semble pas exister plus.Ici est une catégorie à changer de couleur du fond avec la hauteur:
Objectif C:
UINavigationBar+Helper.h
UINavigationBar+Helper.m
Swift:
subViews
. ou tout simplement rechargersubViews
.Ici est une autre façon:
Le seul moyen que j'ai trouvé pour changer de couleur est:
J'ai écrit une extension sur la base des autres réponses pour faciliter l'utilisation de Swift:
Vous pouvez utiliser cette extension à l'appel de la méthode dans un contexte comme ça:
J'ai trouvé que c'était utile que j'ai eu à traiter que la couleur de la frontière problème.
Basé sur la réponse de @vantail j'ai fait une extension rapide à l'aide de mise en page automatique, a expliqué ici.
En substance, les autres solutions ont les pièges suivants:
Ce laissez-vous encore ajouter une ombre portée si vous en avez besoin, et ce, poignées de rotation bien !
UIView
, cependant. Il fonctionne sans valeur de retour.J'ai résolu ce problème avec l'utilisation de mises en page automatiques. La solution fonctionne sur différentes tailles d'écran et avec le changement d'orientation.
Si vous aimez la simple et hacky solutions comme je le fais pour créer une vue qui couvre la bordure par défaut:
Bien, si vous voulez supprimer la bordure inférieure vous définissez l'image de l'ombre à l'image vide
donc, si vous voulez le changer pour une autre couleur, il suffit de créer une image avec cette couleur, j'utilise une fonction d'assistance pour créer une image à partir de la couleur ci-dessous (source d'origine http://jslim.net/blog/2014/05/05/ios-customize-uitabbar-appearance/)
et dans ma barre de navigation
c'est ça, C'est de travailler pour moi, espérons que cette aide. Veuillez envisager de modifier la accepté de répondre parce que sa ne fonctionne pas et peut être source de confusion
budidino solutions fonctionne très bien. Ici c'est pour Swift:
De construire sur @vantail de la mise en œuvre rapide, vous pouvez faire de la frontière sensibles à la rotation/trait modifications à l'aide de contraintes:
Voici la méthode pour créer l'image avec la couleur claire:
Ici, c'est l'usage pour enlever ennuyeux ligne du bas:
Photo 1
vous pouvez utiliser Révéler à voir la couleur de la bordure est de la UIImageView de backgroundColor.
donc, en modifiant directement le imageView de backgroundColor ou de les masquer.
le code: j'écris en @interface QdtTabBarController : UITabBarController
Image 2
Je suis l'aide de RubyMotion avec le RedPotion gem, qui comprend un
StandardAppearance
classe. C'est ce que j'ai fait!Mettre cette ligne en haut de votre
app_delegate.rb
, juste avant laon_load
méthode:Puis, dans votre
application_stylesheet.rb
, de mettre ce que la dernière ligne dans leapplication_setup
méthode:Et puis c'est mon
StandardAppearance
classe:application_stylesheet.rb
n'est-ce pas la même chose dans iOS/Objective-C/Swift.