Ich habe eine benutzerdefinierte @ IBDesignable UIView erstellt und nur die drawRect-Funktion implementiert. Wie so:
%Vor%Während ich dieses drawRect geschrieben habe, hatte ich ein Storyboard mit verschiedenen Instanzen dieses Renderings auf einem View-Controller. Wenn ich in drawRect etwas änderte und speicherte, würden sich diese Änderungen nahezu in Echtzeit im Storyboard widerspiegeln. Es gab sogar eine IBInspectable-Zeichenfolge, die es mir ermöglichte, einen Aufzählungstyp zu ändern und abhängig davon unterschiedlich zu zeichnen. Die Ansichten könnten im Storyboard in der Größe geändert werden, und die neue Breite und Höhe würden in meinem Zeichnungscode berücksichtigt, und die Zeichnung würde genau wie von mir vorgesehen skaliert und übersetzt.
Das war alles in Ordnung, und ich hatte an dieser UIView-Unterklasse keine Änderungen vorgenommen, aber ich habe meine Testansichten im Storyboard gelöscht, während ich neuere Ansichten erstellte, die diese benutzerdefinierte Ansicht tatsächlich verwenden würden.
Nachdem ich mit Einschränkungen viel getanzt hatte, war ich bereit, meine benutzerdefinierte Ansicht dort zu platzieren, wo sie hingehörte. Aber es funktioniert nicht. Während der Identity Inspector meine benutzerdefinierte Klasse als IBDesignable anerkennt, bleibt sie beim Status "Aktualisieren" hängen.
Um zu beweisen, dass ich nicht verrückt wurde, habe ich ganz neue @ IBDesignable UIView-Unterklassen erstellt, die einfache drawRects oder sogar komplett leere drawRects implementiert haben. Diese haben jetzt das gleiche Problem und werden nicht auf dem Storyboard gerendert.
Beachten Sie, dass ich dies im Simulator ausführen kann und die Zeichnung so aussieht, wie ich es zur Laufzeit erwarte . Was ist also mit der Fähigkeit des Storyboards passiert, dieses nette Feedback zu geben, das ich von einem IBDesignable erwarte?
Dinge, die ich versucht habe:
Bei allen diesen Versuchen wird weiterhin der Abschnitt "Aktualisieren" im Abschnitt "Benutzerdefinierte Klasse" des Identity Inspectors angezeigt.
Offensichtlich verursacht etwas jenseits meiner Implementierung hier ein Problem. Hat jemand anderes dieses Problem? Kann mir jemand in die richtige Richtung zeigen? Ich bin mir nicht sicher, was ich sonst noch versuchen sollte.
Tags und Links xcode swift uiview ios9 ibdesignable