6
votes

La barre de navigation pour le contrôleur de visualisation divisée est plus sombre lorsque vous êtes à l'intérieur d'un contrôleur de barres d'onglets

Si vous placez un contrôleur de vue scindé dans un contrôleur de barre d'onglets, la barre de navigation et la barre d'onglets sont plus sombres sur le côté gauche. J'ai joint une capture d'écran. J'ai créé ceci en créant une application principale détaillée, puis ajoutez un contrôleur de barre d'onglets. Comment corrigez-vous ce problème?

 Entrez la description de l'image ici


5 commentaires

J'ai découvert que le contrôleur d'affichage du maître n'extroie pas sous les barres de navigation et les barres d'onglets, de sorte qu'il récupère la couleur d'arrière-plan du contrôleur de visualisation scindée au lieu du contrôleur de la vue principale, pourquoi il est plus sombre.


Le débogueur de vue montre que le maître est en fait s'étendant sous les barres. Pour une raison quelconque, les barres ne dessinent pas correctement. Avez-vous trouvé une solution de contournement à ce problème?


Non, c'est un bug. Je l'ai montré à un ingénieur Apple. Je l'ai enregistré quand j'ai posté mais ils ne l'ont pas corrigé et il ne semble pas y avoir de solution de contournement.


Oh goodie. Merci pour le suivi.


Ceci est corrigé dans iOS 13.0


3 Réponses :


1
votes

Définissez l'arrière-plan du contrôleur de navigation sur blanc sur blanc:

self.navigationController?.navigationBar.translucent = false


0 commentaires

4
votes

Au moment de la rédaction (mai 2017), ce bogue existe toujours. Je ne peux pas croire que Apple ne s'en occupe pas de cela. La partie pire est que si vous faites pivoter votre appareil, ouvrez le maître de côté et faites pivoter le dos, la place des barres translucides et le maître a soudainement une barre translucide et le détail n'a pas. : /

Le seul correctif possible que j'ai pu créer, devait se débarrasser de l'uitabbarcontroller et construire ma propre implémentation d'un contrôleur de barre d'onglets à l'aide d'un UIViewController uni avec un uitabbar en bas et de l'API de confinement UIViewIntroller.

Cela signifie beaucoup de codage pour réinventer la roue. Son triste de ne pas utiliser uitabbarcontroller, mais c'est comme ça. Vous devez faire un compromis entre le contrôleur de conteneur et toutes ses belles caractéristiques telles que le contrôleur "plus" que vous obtenez gratuitement contre les barres translucides.

Si vous pouvez vivre sans barres translucides, j'irais toujours pour UitabbarController sur tout le codage. D'autre part, on pourrait remplacer l'uitabbar avec un Uicollectionview et avoir plus de 6 éléments sans avoir le besoin d'un contrôleur "plus" du tout.


0 commentaires

0
votes

tandis que d'autres réponses se débarrassent des zones grises, le contenu n'apparaît pas derrière les barres, ce qui ne les rend pas translucide dans la pratique. Si vous souhaitez conserver l'effet, j'ai trouvé une solution de contournement: N'utilisez pas de storyboards . xxx

avant, à l'aide de contrôleurs de constructeur d'interface stock (remarquer les arrière-toiles grises de Master Navigation bar et barre d'onglet):

 Capture d'écran Affichage d'une erreur INSPECTION UI Affichage d'une erreur

Après, instanciant des contrôleurs dans le code (voir comment les backdrops obtiennent la bonne couleur de l'arrière-plan maintenant):

Capture d'écran Affichage correction Inspection UI montrant la correction


0 commentaires