Der Warnrahmen für die „Navigationsleiste“ ist zur Laufzeit unterschiedlich und wird in Xcode 8 Swift 3 angezeigt


143

Bevor ich auf aktualisiert habe, habe Xcode 8ich diesen Fehler in einem solchen Fall nicht gesehen. Ich habe verschiedene Navigationssteuerungen. Für alle sehe ich einen Fehler Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375. In Wirklichkeit haben diese Navigationscontroller keine Navigation bar. Navigation barexistiert für Unteransichten. Auf jeden Fall konnte ich es durch Zecken lösen und das Kontrollkästchen deaktivieren Shows navigation barin Attributes inspector. Aber leider Main.storyboarderscheint diese Warnung jedes Mal, wenn ich sie wieder öffne. Auch wenn ich auf das gelbe Dreieck und dann auf Update-Frames klicke, passiert nichts.

Geben Sie hier die Bildbeschreibung ein


1
Gleiches Problem hier bestätigt. Keine der vorgeschlagenen Lösungen behebt das Problem.
GregP

@ GregP bitte überprüfen Sie meine Lösung und antworten Sie
KSR

@ Ashish Kakkad bitte überprüfen Sie meine Lösung und antworten Sie
KSR

Abgelegt unter: // 28844288. Fühlen Sie sich frei, openradar.me/radar?id=4985464104681472
Guillaume Algis

Dies ist meine letzte Warnung, die mich nach dem Aktualisieren meines Projekts nervt.
Sethmr

Antworten:


154

Die Warnung verschwindet, wenn Sie die Eigenschaft "Simulierte Größe" in "Freiform" ändern.


37
Dies löst das Problem nicht. Schließen Sie Xcode und öffnen Sie es erneut. Das Problem tritt erneut auf.
Ashish Kakkad

2
Das nervt mich zum Teufel. Ich habe es gerade versucht, und dadurch wird die Warnung vorübergehend entfernt . Sie können die simulierte Größe jederzeit vor- und zurückschalten, um die Warnung zu entfernen, wenn sie erneut angezeigt wird. Super. Nervig.
Nekonari

5
Nur eine vorübergehende Korrektur - das ist nicht die Antwort.
Emem

5
Ändern Sie entweder diese simulierte Größe (und zurück zu "Abgeleitet" oder was auch immer) oder "Ein- / Ausschalten der Bildlaufansichten anpassen" . Beides führt dazu, dass Storyboard seine entfernt misplaced="YES". Dies ist ein Xcode-Fehler, und dieses Update ist eine Art Force-Refresh-Fehler. Entnommen aus @buildsucceeded Antwort.
BauerMusic

1
@MobileBloke Mit Force-Refresh habe ich gemeint, dass die Storyboard-Ansicht die Parameter neu schreibt (aktualisiert), die Warnung neu bewertet und entfernt. Es ist wirklich eine Auffrischung, Kraft war nur so gemeint, dass sie es nicht automatisch selbst machte (wie es sollte) und eine manuelle willkürliche Änderung benötigte.
BauerMusic

35

Wie hier erwähnt , können Sie dies beheben, indem Sie die Option "Bildlaufansichten anpassen" ein- oder ausschalten.


4
Wow, und (Git überprüfen) buchstäblich alles, was passiert, wenn Sie dies tun, ist, dass misplaced="YES"entfernt wird. : /
Builds erfolgreich

7
Das behebt es bis zum nächsten Schließen und erneuten Öffnen des Projekts. Keine vollständige Lösung.
Casey Wagner

15

Ich habe von Ansicht als: iPhone 6S zu iPhone 5S gewechselt und dann wieder zu iPhone 6S gewechselt, und Xcode hat alle Änderungen vorgenommen, um die Warnung zu entfernen.


2
Dies funktionierte für kurze Zeit - dann, nachdem Xcode es erneut verarbeitet hatte - passierte dasselbe und die Warnung trat erneut auf. Funktioniert das bei Ihnen noch mit dem neuesten Xcode?
UKDataGeek

12

Dies funktionierte bei Xcode 8.3.1 für mich. Nach dem Neustart von Xcode würde es immer noch funktionieren.

Geben Sie hier die Bildbeschreibung ein

  1. Wählen Sie Navigation Controller

Geben Sie hier die Bildbeschreibung ein

  1. Gehen Sie zu Größeninspektor anzeigen

Geben Sie hier die Bildbeschreibung ein

  1. Ändern Sie die simulierte Größe in Freiform

Geben Sie hier die Bildbeschreibung ein

  1. Ändern Sie die simulierte Größe wieder in "Fest"

Geben Sie hier die Bildbeschreibung ein

  1. Dann verschwinden die Warnungen.

Geben Sie hier die Bildbeschreibung ein


Irgendeine Idee, warum dies funktioniert hätte und nicht die Schaltfläche "Frames aktualisieren"?
Mangan

@guoc, Bruder, könntest du mir bitte helfen ? stackoverflow.com/questions/46375778/… ?
Mai Phyu

7

Um dieses Problem zu umgehen, habe ich Main.storyboard manuell bearbeitet, indem ich "falsch platziert" in:

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

Ein Hack, aber es ist schön, keine Warnungen statt 1 zu haben :)


Muss ich das später wieder hinzufügen? Es ist mir egal, wie mein Navigations-Controller aussieht, solange ich keine Warnungen habe. Es ist irgendwie lustig. Das Storyboard erkennt die Warnung für den Bruchteil einer Sekunde und verschwindet dann, wenn Sie das Storyboard auf diese Weise betreten.
Sethmr

Ich habe das Gleiche getan und dann das Storyboard nicht mehr berührt. Alles funktioniert gut.
Zhao

Das Problem ist, dass beim Neuladen es zurückkommt ... jemand anderes bemerkt, dass das Laden des Storyboards mit laufendem Spinner lange dauert, wenn dieser Fehler auftritt?
UKDataGeek

6

Klicken Sie unten links in Ihrem Storyboard auf "Anzeigen als" und wählen Sie eine andere Gerätegröße aus. Klicken Sie dann erneut darauf und wechseln Sie zurück zu der Gerätegröße, mit der Sie begonnen haben. Das hat bei mir funktioniert.


1
es repariert es auch nur
vorübergehend

3

Bis Xcode 8 gepatcht ist, können Sie die Option "Anzeigen als:" auf "iPhone SE" setzen, um die Warnung zu beseitigen. Nicht ideal, funktioniert aber vorerst.


Ich benutze SE .. aber immer noch Warnung
Abdul Waheed

1
Ja ich weiß. Sie verschwinden jedoch immer dann, wenn Sie diese Auswahl auf etwas anderes umstellen. Heutzutage beginne ich mit 7, wechsle zu SE und dann zurück zu 7, um diese Warnungen zu löschen. Oder lassen Sie sie einfach und checken Sie die misplacedEigenschaften beim Festschreiben von Änderungen nicht ein.
Nekonari

3

Ich habe alle oben genannten Vorschläge ausprobiert, aber es schien nicht zu funktionieren. Ich denke, es könnte ein schwerwiegenderer Fehler sein.

Ich habe einen Fehler mit Apple Bug Reporter (Link: https://bugreport.apple.com/logon ) protokolliert. Wenn Sie dasselbe tun möchten, verweisen Sie bitte auf den Fehler: 31355220damit Apple ihn zusammenbinden kann. Je mehr Personen dies melden, desto mehr Informationen müssen sie benötigen, um diesen Ärger zu beheben.


2

Ich konnte das Problem vollständig beseitigen, indem ich die simulierte Größe des Ansichts-Controllers auf Freiform und dann die Breite von 375 auf 320 einstellte.


Sie müssen es nur auf den View-Controllern einstellen, die keine
übergeordneten Elemente

1

Hatte das gleiche Problem, hier ist, was ich getan habe, um es zu beheben:

Erweitern Sie die Fehlerinformationen und klicken Sie auf das Warndetail. Xcode sollte dann automatisch die Bemaßungs- / Positionseinstellungen öffnen. Ersetzen Sie den aktuellen Wert durch den in den Warndetails vorgeschlagenen Wert.

Geben Sie hier die Bildbeschreibung ein

Stellen Sie grundsätzlich sicher, dass die Größe in Ihrer Laufzeit mit der Größe übereinstimmt, die Sie im Größeninspektor angegeben haben.

Sie können auch auf das Symbol neben dem von Ihnen geposteten Bild klicken (das gelbe Dreieck mit dem weißen Kreis. Manchmal ist es ein rotes Kreissymbol). Anschließend gibt es Optionen zum automatischen Beheben / Anpassen der Probleme.

Geben Sie hier die Bildbeschreibung ein

Ich habe die Option "Einschränkungen aktualisieren" ausgewählt und dann die neuen Einschränkungen entsprechend angepasst.


4
Funktioniert in dieser Situation nicht. Die Felder X / Y / Breite / Höhe für die Navigationsleiste sind alle ausgegraut / nicht bearbeitbar.
Slipp D. Thompson

@ Ian Hmmm… Ich glaube, ich habe gerade die xib so bearbeitet, dass die Zahlen übereinstimmen.
Slipp D. Thompson

1

Für mich war das Problem, dass ich die untere Leiste beim Drücken versteckte (mit IB-Kontrollkästchen).

Ich musste 'keine' in der Option 'untere Leiste' auswählen:

Geben Sie hier die Bildbeschreibung ein


0

Okay, es sieht so aus, als hätte ich das Problem behoben. Folgendes habe ich getan.

Wählen Sie Update Frames wie gewohnt aus. Öffnen Sie eine andere Datei und klicken Sie dann wieder auf die Storyboard-Datei. Wenn das nicht funktioniert, starten Sie Xcode neu. Es sieht so aus, als würde es intern aktualisiert, aber die Benutzeroberfläche des Interface Builders blieb hängen, wie es manchmal der Fall ist.


3
Nach dem erneuten Öffnen von XCode verschwindet diese Warnung tatsächlich, aber wenn ich eine Datei im Projekt öffne und main.storyboarddiese erneut öffne, erscheinen diese Warnungen erneut
Danny

0

Bitte ändern Sie die Vorschau Ihres Geräts in xcode für View Controller und kompilieren und prüfen Sie auf Warnungen ...

Xcode 8 ist etwas fehlerhaft. Der Interface Builder hat es mit dem zufälligen Nein zurückgesetzt, was sich auf alle enthaltenen Ansichten auswirkt. Versuchen Sie, Ihr Vorschaugerät zu ändern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.