Le cadre d'avertissement pour «Barre de navigation» sera différent au moment de l'exécution apparaît dans Xcode 8 Swift 3


143

Avant de passer à la version précédente, Xcode 8je n'ai pas vu cette erreur dans un tel 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 barexiste pour les sous-vues. Quoi qu'il en soit, je pourrais le résoudre en cochant et décochant la case Shows navigation barà cocher Attributes inspector. Mais malheureusement, chaque fois que je rouvre, Main.storyboardcet avertissement réapparaît. De plus, si je clique sur le triangle jaune puis sur les cadres de mise à jour, rien ne se passe.

entrez la description de l'image ici


1
Même problème confirmé ici. Aucune des résolutions suggérées ne résout le problème.
GregP

@GregP s'il vous plaît vérifier ma solution et répondre
KSR

@Ashish Kakkad s'il vous plaît vérifier ma solution et répondre
KSR

Rdar déposé: // 28844288. N'hésitez pas à duper openradar.me/radar?id=4985464104681472
Guillaume Algis

C'est mon dernier avertissement qui me dérange après la mise à jour de mon projet.
Sethmr

Réponses:


154

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


37
Cela ne résout pas le problème. Fermez Xcode et ouvrez à nouveau le problème reviendra.
Ashish Kakkad

2
Cela me dérange. Je viens d'essayer ceci, et cela supprime temporairement l' avertissement . Vous pouvez toujours basculer la taille simulée d'avant en arrière pour supprimer l'avertissement lorsqu'il revient. Super. Énervant.
nekonari

5
Seulement une solution temporaire - ce n'est pas la réponse.
emem

5
Modifiez cette taille simulée (et revenez à «déduit» ou autre) ou «activez / désactivez Ajuster les inserts de la vue de défilement» . Les deux entraîneront la suppression de Storyboard misplaced="YES". Il s'agit d'un bogue Xcode, et ce correctif est du type d'actualisation forcée. Tiré de la réponse @buildsucceeded.
bauerMusic

1
@MobileBloke Par force-refresh, je voulais dire que la vue Storyboard réécrira (actualisera) les paramètres, réévaluera et supprimera l'avertissement. C'est vraiment un rafraîchissement, la force signifiait seulement qu'il ne le faisait pas automatiquement par lui-même (comme il se doit) et avait besoin de quelques changements manuels arbitraires.
bauerMusic

35

Comme mentionné ici, vous pouvez résoudre ce problème en activant / désactivant Ajuster les inserts de la vue de défilement.


4
Wow, et (vérifier git) littéralement, tout ce qui se passe lorsque vous faites cela est misplaced="YES"supprimé. : /
réussie

7
Cela résout le problème jusqu'à la prochaine fois que vous fermez et rouvrez le projet. Pas une solution complète.
Casey Wagner

15

J'ai changé de Afficher en tant que: iPhone 6S à iPhone 5S, puis je suis revenu à l'iPhone 6S et Xcode a effectué toutes les modifications pour supprimer l'avertissement.


2
Cela a fonctionné pendant un court laps de temps - puis après que Xcode l'ait traité à nouveau - la même chose s'est produite et l'avertissement s'est reproduit. Cela fonctionne-t-il toujours pour vous sur le dernier Xcode?
UKDataGeek

12

Cela a fonctionné pour moi à Xcode 8.3.1 Après avoir redémarré Xcode, cela fonctionnerait toujours.

entrez la description de l'image ici

  1. Sélectionnez le contrôleur de navigation

entrez la description de l'image ici

  1. Accédez à Afficher l'inspecteur de taille

entrez la description de l'image ici

  1. Changer la taille simulée en forme libre

entrez la description de l'image ici

  1. Redéfinissez la taille simulée sur Fixe

entrez la description de l'image ici

  1. Puis les avertissements disparaissent.

entrez la description de l'image ici


Une idée pourquoi cela aurait fonctionné et pas le bouton "Mettre à jour les cadres"?
Manganèse

@guoc, pouvez-vous m'aider s'il vous plaît stackoverflow.com/questions/46375778/... ?
Mai Phyu

7

Pour contourner ce problème, juste pour me débarrasser de l'avertissement ennuyeux, j'ai édité Main.storyboard manuellement en supprimant `` égaré '' dans:

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

Un hack mais c'est bien de n'avoir aucun avertissement plutôt que 1 :)


Dois-je le rajouter plus tard? Je ne me soucie pas vraiment de l'apparence de mon contrôleur de navigation tant que je n'ai pas d'avertissements. C'est assez drôle. Le storyboard reconnaît l'avertissement pendant une fraction de seconde, puis il disparaît lorsque vous entrez dans le storyboard de cette façon.
Sethmr

J'ai fait la même chose et ensuite je ne touche plus le storyboard. Tout fonctionne bien.
Zhao

Le problème est que lorsque vous rechargez, il revient ... quelqu'un d'autre a remarqué qu'il faut beaucoup de temps pour charger le storyboard avec le spinner en cours d'exécution lorsque cette erreur se produit?
UKDataGeek

6

Cliquez sur "Afficher sous" 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.


1
il vient aussi juste de le réparer pour moi
zero3nna

3

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.


J'utilise SE .. mais toujours Attention
Abdul Waheed

1
Ouais je sais. Mais ils disparaissent chaque fois que vous passez cette sélection à autre chose. Aujourd'hui, je commence par 7, je passe à SE, puis je reviens à 7 pour effacer ces avertissements. Ou laissez-les simplement et ne conservez pas les misplacedpropriétés lors de la validation des modifications.
nekonari

3

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

J'ai enregistré un bogue avec Apple Bug Reporter (lien: https://bugreport.apple.com/logon ) - si vous voulez faire de même, veuillez faire référence au bogue: 31355220pour qu'Apple puisse le lier ensemble. Plus il y a de gens qui le signalent, plus ils auront d'informations pour résoudre ce problème.


2

J'ai pu me débarrasser complètement du problème en définissant la taille simulée du contrôleur de vue sur forme libre, puis en définissant la largeur de 375 à 320.


Vous n'avez besoin de le définir que sur les contrôleurs de vue qui n'ont pas de parents (contrôleur de vue racine + peut-être plus, selon ce que vous avez dans votre storyboard)
thetrutz

1

J'ai eu 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 cote / position. Remplacez la valeur actuelle par la valeur suggérée dans les détails de l'avertissement.

entrez la description de l'image ici

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

Vous pouvez également cliquer sur l'icône à côté de l'image que vous avez publiée (le triangle jaune avec un cercle blanc. Parfois, c'est une icône de cercle rouge), il y aura alors des options pour résoudre / ajuster automatiquement les problèmes.

entrez la description de l'image ici

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


4
Ne fonctionne pas dans cette situation. Les champs X / Y / Largeur / Hauteur de la barre de navigation sont tous grisés / non modifiables.
Slipp

@Ian Hmmm… Je pense que j'ai fini par éditer le xib pour que les nombres correspondent.
Slipp D.Thompson

1

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

J'ai dû sélectionner `` aucun '' dans l'option `` barre inférieure '':

entrez la description de l'image ici


0

D'accord, il semble 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 autre fichier, puis cliquez à nouveau sur le fichier de storyboard. Si cela ne fonctionne pas, redémarrez Xcode. Il semble qu'il se mettait à jour en interne, mais l'interface utilisateur du générateur d'interface était bloquée comme cela arrive parfois.


3
Après la réouverture de XCode, cet avertissement disparaît, mais si j'ouvre un fichier dans le projet et que je l'ouvre à nouveau, main.storyboardces avertissements apparaissent à nouveau
Danny

0

Veuillez modifier l'aperçu de votre appareil dans xcode pour le contrôleur View et compiler et vérifier les avertissements ...

Xcode 8 est un peu bogué, le constructeur d'interface le réinitialise avec un non aléatoire qui affecte toutes les vues contenues. Essayez de changer votre appareil de prévisualisation.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.