web-dev-qa-db-fra.com

Le cadre d'avertissement pour "Barre de navigation" sera différent au moment de l'exécution du code XCode 8 Swift 3

Avant de passer à XCode 8, je n'ai pas vu cette erreur dans ce cas. J'ai différents contrôleurs de navigation. Pour tous, je vois une erreur Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375. En réalité, ces contrôleurs de navigation n'ont pas Navigation bar. Navigation bar existe pour les sous-vues. Quoi qu'il en soit, je pourrais le résoudre en cochant et décochant la case Shows navigation bar dans Attributes inspector. Mais malheureusement, chaque fois que je rouvre Main.storyboard, cet avertissement réapparaît. De plus, si je clique sur le triangle jaune puis sur les cadres de mise à jour, rien ne se passe. Des idées?

 enter image description here

137
Danny

L'avertissement disparaît si vous changez la propriété "Taille simulée" en "Forme libre". 

153
Kai

Comme mentionné ci-dessus ici vous pouvez résoudre ce problème en activant/désactivant le réglage Insertion Scrollview.

34
buildsucceeded

Je suis passé de View as: iPhone 6S à iPhone 5S, puis à nouveau à iPhone 6S et Xcode a effectué toutes les modifications pour supprimer l'avertissement.

14
negersiu

Cela fonctionnait pour moi sur Xcode 8.3.1 Après le redémarrage de Xcode, cela fonctionnerait toujours.

 enter image description here

  1. Sélectionnez le contrôleur de navigation

 enter image description here

  1. Aller à afficher l'inspecteur de taille

 enter image description here

  1. Changer la taille simulée en forme libre

 enter image description here

  1. Remettre la taille simulée à fixe

 enter image description here

  1. Puis les avertissements disparaissent.

 enter image description here

12
guoc

En guise de solution de contournement, juste pour me débarrasser de cet avertissement ennuyeux, j'ai édité Main.storyboard manuellement en supprimant le mot «mal placé» dans:

<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">

Un bidouillage mais c'est agréable d'avoir zéro avertissements plutôt que 1 :)

7
Jensie

Cliquez sur "Afficher en tant que" en bas à gauche de votre storyboard et choisissez une taille de périphérique différente, puis cliquez à nouveau dessus et revenez à la taille de périphérique avec laquelle vous avez commencé. Cela a fonctionné pour moi.

6
colby

J'ai essayé toutes les suggestions ci-dessus, mais cela n'a pas semblé fonctionner. Je pense que cela pourrait être un bug plus grave. 

J'ai enregistré un bogue avec Apple Bug Reporter (lien: https://bugreport.Apple.com/logon ) - si vous souhaitez faire de même, veuillez référencer le bogue: 31355220 afin qu'Apple puisse l'associer . Plus il y a de personnes qui le signalent - plus elles auront d'informations pour régler ce problème. 

3
Mobile Bloke

Jusqu'à ce que Xcode 8 soit corrigé, vous pouvez définir l'option "Afficher comme:" sur "iPhone SE" pour éliminer l'avertissement. Pas idéal, mais fonctionne pour le moment.

3
nekonari

J'ai pu éliminer complètement le problème en réglant la taille simulée du contrôleur de vue sur une forme libre, puis en réglant la largeur de 375 à 320. 

2
templeman15

pour moi, le problème était que je cachais la barre inférieure de Push (en utilisant la case à cocher IB). 

je devais sélectionner 'aucun' dans l'option 'barre inférieure':

 enter image description here

1
Radu Ursache

Avait le même problème, voici ce que j'ai fait pour résoudre:

Développez les informations d'erreur et cliquez sur le détail de l'avertissement. Xcode devrait alors ouvrir automatiquement les paramètres de dimension/position. Remplacez la valeur actuelle par la valeur suggérée dans les détails de l'avertissement.

 enter image description here

En gros, assurez-vous que la taille de votre runtime est identique à celle que vous avez spécifiée dans l'inspecteur de taille.

Vous pouvez également cliquer sur l'icône située à côté de l'image que vous avez publiée (le triangle jaune avec un cercle blanc. Parfois, il s'agit d'une icône représentant un cercle rouge). Des options vous seront proposées pour résoudre/ajuster automatiquement les problèmes.

 enter image description here

J'ai choisi l'option de contrainte de mise à jour, puis j'ai ajusté les nouvelles contraintes en conséquence.

1
user2027373

Bon, on dirait que j'ai résolu le problème. Voici ce que j'ai fait. 

Sélectionnez les cadres de mise à jour comme d'habitude. Ouvrez un fichier différent, puis cliquez à nouveau sur le fichier de scénario. Si cela ne fonctionne pas, redémarrez Xcode. Il semble que la mise à jour interne ait été effectuée, mais l'interface utilisateur du générateur d'interface était bloquée, comme cela se produit parfois. 

0
GregP

Veuillez modifier votre appareil Preview dans xcode pour View controller et compiler et vérifier les avertissements ...

Xcode 8 est un bug, le constructeur d’interface réinitialise son avec non, ce qui affecte toutes les vues contenues ..__ Essayez de changer votre périphérique de prévisualisation.

0
Aks