IB Designables: Failed to render und update-auto-layout-status
Habe ich eine benutzerdefinierte Ansicht (xib
) , hat eine UIButton
im inneren habe ich gemacht-id IBDesignable
Sie Folgendes tun:
UserView.swift
import UIKit
@IBDesignable
class UserView: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var userButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
load()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
load()
}
fileprivate func load() {
Bundle.main.loadNibNamed("UserView", owner: self, options: nil)
addSubview(view)
self.frame = bounds
}
}
UserView.xib
- Hinzugefügt, die UIButton und Einschränkungen festlegen,
- Satz der Besitzer der Datei:
UserView
Storyboard
Ich habe eine UIView, um eine Bar Button Item
und zugeordnet UserView Klasse, aber nichts ist Rendern, und ich habe folgende build-Fehler:
Fehler: IB Designables: Failed to render und update-auto-layout-status
für FoodViewController (bR3-Kz-wX7): Der agent warf eine Ausnahme.
Meiner aktuellen Umgebung: Xcode 9, Swift 4
Versuchen Sie, deaktivieren Sie "Verwenden Sie die Trait-Variationen' (Identität und Typ-panel) für jede xib-Datei, die Sie haben könnten für benutzerdefinierte Ansichten, die Sie in Ihrem storyboard. aus stackoverflow.com/questions/39732312/...
InformationsquelleAutor Jonathan Solorzano | 2017-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Füge ich diesem Skript am Ende meiner
Podfile
und durchgeführtpod install
wieder. Also ich bauen konnte ganz normal mein Projekt.Es funktionierte auch bei mir. Es ist einfach entspannt die Anforderung von code-signing-Anforderung für die Rahmenbedingungen, die Sie laden möchten, über Cocoapods.
Hat das irgendwelche Nebenwirkungen zu keinen Rahmen?
arbeiten wie ein Charme. kudos
InformationsquelleAutor Haroldo Gondim
Ich hatte gerade das exakt gleiche Problem, und die einzige Sache, die für mich gearbeitet wurde, statt mit dem Haupt-Bundle, musste ich das Bundle für die Feder, die ich wollte. Im wesentlichen ändern:
:
Ist Bizarr, wie in meinem Fall, beim Vergleich der beiden Bundles zur Laufzeit in LLDB, Sie waren identisch (Klasse name ist anders, aber der rest von meinem setup war identisch zu der OP)
Denn wenn InterfaceBuilder ist, dass es nicht läuft die Anwendung. Es gibt keine "main application bundle".
InformationsquelleAutor Mike Velu
Bottom Line
Stellen Sie sicher, dass Ihre xib-Datei nicht verwaiste outlets. Überprüfen Sie jede Ansicht/element der Feder für eine Steckdose, und entfernen Sie und erneut fügen Sie hinzu.
Für mich, Sie waren verwaist-outlets. Es scheint, die Federn und IB sind da sehr pingelig und der debugger gibt nicht viele details... wenn Sie nicht bekommen kann diese zu arbeiten, könnten Sie beginnen mit einem frischen nib/xib-Datei.
Walkthrough von meinem funktionierenden code
Dieses Problem hat mich mehrere Tage zu beheben. Zum Wohle der anderen gebe ich eine ausführliche Antwort und zeigt alle meine relevanten code und verbindungen.
Meine Datei-Struktur
Hier ist meine Datei-Struktur (Anmerkung: ich bin die Erstellung einer pod mit cocoapods namens
ZMAppFoundation
. AuchZMPieTimerView.swift
ist nicht relevant für die Lösung.):Ich will meine Feder angezeigt werden (IBDesignable) in der
Main.storyboard
Datei. Hier ist der Besitzer der Datei und Benutzerdefinierte Klasse von meinem xib,ZMGauge.xib
:Code-Implementierungen
Hier ist mein ZMXibView Klasse:
Im storyboard, meine xib bezeichnet wird, in die Benutzerdefinierte Klasse. Ich bin mit cocoapods zu entwickeln, die eine pod. Ich habe explizit ausgewählte Modul. (Beachten Sie, dass in meinem XibView Klasse, ich habe zu definieren, die
nibName
Eigenschaft.):Nicht Vergessen!
Dann müssen Sie möglicherweise zu reinigen, schließen, Xcode, neu erstellen oder einfach eine Weile warten, für die IB zu machen, es wieder. Es ist immer noch ein Rätsel für mich genau dann, wenn Xcode wird sich entscheiden, zu versuchen, um zu machen die IBDesignables, und ich don ' T wissen, einen Weg zu zwingen.
Erfolg
Basierend auf meinem code und die Aktionen, die ich nahm, meine Feder ist jetzt IBDesignable sichtbar in meinem Main.storyboard.
In falls Sie es verpasst
In falls Sie es verpasst, meine Lösung ist ganz an der Spitze von diesem post. Ich habe mir um den Fehler zu löschen, angeführt von der OP, indem einige verwaiste IBOutlets.
InformationsquelleAutor Jacob Davis
Xcode 9.3, CocoaPods 1.5.3
Es kann sein, wegen den letzten update auf CocoaPods-version. Sehen Problem hier.
Hatte ich diesen Fehler
IB Designables: Failed to render and update auto layout status
im storyboard, die Klasse STPPaymentCardTextField in Streifen-SDK mit Bezug zu Cocoapods.Lösung ist ein downgrade Ihrer CocoaPods zu 1.4.0.
funktioniert bei mir auch teilweise.
Nachdem alle Schritte entfernen der abgeleiteten Daten, und starten Sie xcode . seine Werke für mich
InformationsquelleAutor Cons Bulaquena
Für mich, der fix kam nach unten, um zu bekommen, Interface Builder-das Objekt neu zu zeichnen. Ich hatte diese an zwei stellen, und beide wurden behoben, durch die keine änderungen an code, aber die Symptome der agent Fehler und den Blick leer in die storyboard-schließlich wurde behoben.
War behoben, indem eine UIView, um eine andere, um unter dem Blick-und Umbau. Eine zweite in einem TableView mit Prototyp-Zelle wurde behoben, durch Auswahl der TableView ändern der Anzahl von Prototypen-Zellen zu zwei, warten Sie eine Sekunde, dann ändern Sie es zurück zu einem. Der TableView, die hatte eine weiße leere, dann zog Sie alle Elemente richtig und der agent Fehler war Weg.
Es fühlt sich an wie ein Fehler mit der IB und von anderen sucht, viele Lösungen gibt es für den ähnlichen Fehler. Hoffe, das jemand hilft.
InformationsquelleAutor FiveOhHO
(xCode 9.2, Swift 4) folgende kann nicht helfen, Ihre genauen problem, kann aber helfen, andere mit einem sehr ähnlichen problem. Das war mein Fehler:
War ich in der Lage, um den Fehler zu entfernen, wenn das löschen der CustomExampleView.xib und CustomExampleView.swift. Zu replizieren, die ich dann neu erstellt, die Dateien, ging die .xib und legen Sie die top-level-Ansicht der benutzerdefinierten Klasse, die CustomExampleView.
Meine Fehler war die Einstellung der benutzerdefinierten Klasse, die die top-level-Sicht auf die .xib anstatt die custom class auf der File ' s Owner. Nach der Einstellung der richtigen benutzerdefinierten Klasse, mein problem war gelöst.
InformationsquelleAutor olearyj234
Es ist das problem mit einigen Kakao-Hülsen-Versionen wie 1.5.0.
Wenn Sie mit dieser dann die Ursache zu Rendern fehlgeschlagen
zum verschieben von der aktuellen version zur anderen führen Sie diese Befehle im terminal
Können Sie installieren jede spezifische version erwähnt, wie diese
Hoffen, dass es für Sie arbeitet.
versuchen Sie, diese Xcode -> Einstellungen -> Allgemeine und überprüfen Sie die live-Ausgabe
InformationsquelleAutor Shaheryar Malik
Für mich dieses problem gelöst,
embedded-option.
hahaha alte hack 🙂 Danke!
InformationsquelleAutor Najam
Eingabe der oben genannten code in das Podfile löst die Probleme. Dieser code einfach nicht mit der Anforderung von code signing für das installierte framework über Cocoapods. Aber dies scheint ein bug in IBDesignable zu wie mit Xcode 10 Einsätze 4 ich habe nicht diesen bug, dass aufgrund der neuen build-system integriert in Xcode 10.
InformationsquelleAutor Nikhil Pandey
Kann man leider nicht verwenden IBOutlets innerhalb einer IBDesignable. Bessere Antwort für Sie hier:
Live Rendern IBOutlet Verbunden Untersichten Über IBInspectable Eigenschaften
Vielleicht wollte Ihre UserView erweitern UIButton, anstatt UIView?
InformationsquelleAutor Mars
Ich weiß wirklich nicht viel über die Ursache dieses, aber ich habe gesehen das ein paar mal und es ist jedes mal so behoben, indem nur ein Neustart von xcode. Ich denke, jeder sollte starten und wenn das nicht funktioniert, dann können Sie versuchen, den anderen antwortvorgaben.
InformationsquelleAutor Castro Zwelithini
Ich bin kriechend auf, wie dumm das ist, zu tun, was ich zu sagen Sie einen Unterschied macht, aber Sie können versuchen, das entfernen der Umbruch-code aus
und verwenden Sie nur in
. Ich bin kriechend, noch mehr, wenn ich Berichte, dass es möglich, dass Ihre änderungen konnte noch spiegeln sich in der storyboard-als gewünscht, wenn dies zu tun.
Können Sie identifizieren das brechen code durch auskommentieren aller Zeilen und mit einem Ausschlussverfahren zu identifizieren, die brechende Linie.
InformationsquelleAutor ScottyBlades
Deaktivierte ich den 'User-trait-Variationen' und mein problem war gelöst.
InformationsquelleAutor Sam