Hier ist ein Vorher und Nachher eines meiner Bildschirme, nachdem ich auf Xcode 8 aktualisiert habe.
Alles, was ich getan habe, war mein main.storyboard zu öffnen und von dort aus habe ich meine App auf meinem Handy erstellt und ausgeführt.
In meiner Versionskontrolle kann ich sehen, dass Xcode viele Änderungen an meinem main.storyboard vornimmt, nur weil ich es öffne.
Immer wenn ich diese Änderungen lösche, kann ich sehen, was ich in Xcode 7.3.1 sehe.
Sobald ich jedoch den Interface Builder mit meinem Storyboard wieder öffne, werden diese Änderungen wieder wirksam.
Kann ich hier etwas tun?
102
Debug View Hierarchy
. Andere Objekte derselben Klasse, die sich in UICollectionViews befinden, sind nicht betroffen.Antworten:
Ich hatte ein ähnliches Problem mit Tabellenansichtsbildern, die nicht angezeigt wurden, nachdem ich die Storyboard-Datei in Xcode8-kompatibel konvertiert hatte. Dies sieht aus wie ein Fehler mit Xcode8. Bis eine Fehlerbehebung veröffentlicht wird, können Sie Folgendes umgehen:
Wenn Sie weitere Änderungen an der Storyboard-Datei vornehmen müssen, führen Sie diese Schritte erneut aus.
quelle
XIB oder Storyboard setzen standardmäßig ältere Version 7.x und Speichern und schließen. Temporäre Lösung, funktioniert aber. Öffnen Sie nicht mehr, sobald Sie Speichern und Schließen abgeschlossen haben. Andernfalls müssen Sie von Anfang an dieselben Schritte ausführen.
quelle
Eh das gleiche Problem. Ich habe es teilweise geschafft, es auf folgende Weise zu beheben ( behoben für Xcode Version 8.1 (8B62) )
In der Dokumentskizze von Storyboard habe ich auf jede Szene geklickt, in der der gelbe Pfeil auf einige Layoutprobleme hinweist (Nummer 1 im Screenshot).
Danach musste ich für jede problematische Szene auf das kleine Symbol "Frames aktualisieren" (Nummer 2 auf dem Screenshot) klicken, um alle Layoutprobleme pro Szene zu beheben.
Eine Szene in meinem Fall war jedoch nach dem Übergang von Xcode7 zu Xcode8 immer noch im Weinen. Ich musste es manuell beheben, indem ich Einschränkungen anpasste oder fehlende Einschränkungen hinzufügte.
Puh, keine schöne Überraschung von XCode8 und Storyboards. Wenn Sie den AppCode-Editor verwendet haben, treten solche Probleme nicht auf, da er keine Storyboards unterstützt
Viel Glück!
quelle
Xcode 8.1 Beta 2 behebt dieses Problem. Bitte überprüfen Sie diesen Download-Link
https://developer.apple.com/download/
quelle
Bitte folgen Sie den Threads für eine mögliche Lösung: (Ich glaube, es passiert vielen Entwicklern).
Xcode 8 GM Seed Storyboard-Problem
Xcode 8 - Frühere Storyboards wurden verzerrt
(ich habe jede beliebige Breite 600 verwendet). Als Xcode auf Xcode 8 aktualisiert wurde, wurden alle meine ViewController-Größen geändert. Infolgedessen wurde das gesamte Layout verzerrt.
Derzeit sehe ich nur 3 Lösungen für das Problem (ich würde nicht darauf vertrauen, bald auf eine Lösung zu warten).
1.Gehen Sie für jeden Viewcontroller und beheben Sie ihn durch
Update Frames
.2.Gehen Sie zum Haupt-ViewController,
Size Inspector -> Freeform -> 600
da davon ausgegangen wird, dass die meisten Controller die Größe für alle ändern. (Achten Sie auf die Auswirkungen der neuen Funktionen, die Apple einführen möchte.)3. Verwerfen Sie die Änderungen in Git für das Storyboard (ich würde es nicht vorschlagen, da Apple auch einige Updates eingefügt hat, die für Xcode wichtig sein können).
Zusätzlicher Link für die neuen AutoLayout-Funktionen in Xcode 8 (WWDC16): Apps adaptiv machen, Teil 1
quelle
In meinem Fall funktionieren die von Akhil Kateja vorgeschlagenen Lösungen, und ich muss auch Breite und Höhe der Hauptansicht zurücksetzen:
1) Stellen Sie die Ansichtsgröße auf Freiform ein
2) Setzen Sie Breite und Höhe der Ansicht auf die ursprüngliche Größe zurück:
Zum Schluss speichern und fertig.
quelle
Für mich bestand die Lösung darin, einfach auf den UIViewController zu klicken, der Probleme hatte, und dann
Editor > Resolve Auto Layout Issues > All Views In ... > Updates Frames
Die Ansichten wurden neu angeordnet, um sie an die vorhandenen Einschränkungen anzupassen, basierend auf der neu ausgewählten Standardansicht (in meinem Fall iPhone 7).
Beachten Sie auch: Wenn Sie wie ich eine Warnung für eine falsch platzierte Navigationsleiste erhalten , wählen Sie einfach den UINavigationController / UIViewController aus und schalten Sie ihn dann aus
Attributes Inspector > Bar Visibility > Shows Navigation Bar
und wieder ein.quelle
Das Festlegen der Ansichtsgröße auf Freiform von Inferred hat bei mir funktioniert. Sie finden es unter der Überschrift Simulierte Metriken im Attributinspektor .
quelle
Ich hatte das gleiche Problem und habe es durch erzwungenes Aktualisieren der Ansichtsbeschränkungen des Controllers gelöst. Fügen Sie den folgenden Code in Ihre viewDidLoad () - Funktion ein
quelle
Ich habe jeden Controller ausgewählt und auf "Frames aktualisieren" geklickt und das Layout korrigiert.
quelle
Die Antwort von @ david-truong ( https://stackoverflow.com/a/39589860/1407528 ) funktioniert in meinem Fall nicht. Wenn Sie sich also in derselben Situation befinden, versuchen Sie Folgendes :
Wenn Sie alle Ihre Geräte auf iOS 10+ aktualisiert haben, erkennt diese Version von Xcode diese Geräte nicht als kompatible Geräte. Versuchen Sie es mit diesem Trick:
Hinweis: Neue Funktionen wie Swift sind mit diesem Trick nicht verfügbar, Sie sollten jedoch in der Lage sein, Ihr Projekt zu laden und zu erstellen.
quelle
Hoffe das wird helfen
Wenn ich Xcode von 7.3 auf Xcode 8 aktualisiert und die App ausgeführt habe, werden einige der Ansichten perfekt angezeigt, andere jedoch verzerrt. Dann habe ich die NIB-Datei überprüft und mich aufgefordert, eine bestimmte Gerätegröße auszuwählen und dann die Nib entsprechend anzuzeigen Gerätegröße, die natürlich nicht ist
Any-Any(Xcode 7.3)
. Daher werden nicht alle NIBS-Dateien korrekt angezeigt.Lösungsarbeit von mir: - Drücken Sie den gelben Pfeil wie im Bild unten gezeigt
Es wird ein Popup angezeigt, in dem Optionen wie angezeigt werden
Wählen Sie
Update Frames
mitApply to all views in container
checked.it werden etwa 90% der verzerrten Benutzeroberfläche gelöst, und der Rest des Problems mit den Einschränkungen für das automatische Layout kann manuell gelöst werden.quelle
Ich habe das Problem mit Xcode Version 7.3.1 behoben. Sie können die .dmg-Datei vom Apple Developer Portal herunterladen. Ich habe die automatische Größenanpassung in jeder App verwendet und sie funktioniert hervorragend für mich. Ich werde nur dann auf Xcode 8 aktualisieren, wenn sie diesen Fehler beheben können.
Laden Sie es hier herunter: https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg
quelle
Um ein ähnliches Problem zu beheben, habe ich die xib als Freiform (nicht abgeleitet) konfiguriert UND die xib-Datei als Xcode 7.x-kompatibel gespeichert. In meinem Fall waren beide Schritte erforderlich. Ich hoffe das hilft!
quelle
Ich bemerke eine neue Schaltfläche in Xcode 8.2 (überprüfen Sie den orangefarbenen Kreis im Bild). Es wird Ihnen etwas Hilfe geben.
Schritte: 1. Öffnen Sie das Storyboard und wählen Sie ein beliebiges Gerät aus. 2. Wählen Sie einfach den View Controller aus. 3. Klicken Sie auf die genannte Schaltfläche (wie in Abbildung). 4. Der Frame für diesen View Controller wird aktualisiert, und Sie können fortfahren
Ich habe keine bessere Lösung gefunden. Bitte antworten Sie, wenn Sie eine gefunden haben.
quelle
Aktualisierungsbeschränkungen und Layout-Unteransichten in viewdidload lösen das Problem
quelle