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

Danny
la source
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".

Kai
la source
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.

construction réussie
la source
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.

negersiu
la source
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

guoc
la source
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 :)

Jensie
la source
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.

Colby
la source
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.

Nekonari
la source
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.

UKDataGeek
la source
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.

templeman15
la source
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.

user2027373
la source
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

Radu Ursache
la source
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.

GregP
la source
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.

Aks
la source