@ IBDesignable - Ansicht wird nicht wie erwartet gerendert

Ich habe ein benutzerdefiniertesUIView Unterklasse, die ich mit @ zu rendern versuc@IBDesignable.

Ich habe ei@IBInspectable Eigenschaft mit dem Namenimage, das ich vom Interface Builder festgelegt habe.

Wenn ich den Interface Builder öffne, wird dasimage, das ich wähle, wird in der Ansicht nicht richtig gerendert, das heißt, es scheint ein Problem mit dem automatischen Layout zu geben. Als ich das @ überprüfReport navigator Ich erhalte eine Warnung imInterface Builder group.

Showing All Messages
(null): -pie being ignored. It is only used when linking a main executable

Dies geschieht unter demLink <IBDESIGNABLE_EXECUTABLE> Sektion

Ich habe keine Ahnung, wie ich das beheben soll. Versuchte viele Lösungen vonS. Bereinigen des Build-Ordners, Löschen abgeleiteter Daten usw. Es hat nichts funktioniert.

Bitte geben Sie Ihre wertvollen Kommentare oder eine Lösung für dieses Problem. Vielen Dank! :)

BEARBEITEN

Danke an @Rob, ich könnte mich auf das Problem konzentrieren.

Was ich habe

EinIBDesignable UIView Unterklasse mit Eigenschaften:

ei@IBInspectable Eigenschaft mit dem Namenimage.an ImageViewa ScrollView

Ich initialisiere und füge die ScrollView und ImageViews mit @ als Subviews hin

required public init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    initialiseImageView()
}

override init(frame: CGRect) {
    super.init(frame: frame)
    initialiseImageView()
}

Problem

IminitialiseImageView():
Ich füge das @ hinscrollView als Unteransicht desUIView undImageView als Unteransicht desscrollView um das @ zu benutzviewForZooming delegieren. Ich füge auch Einschränkungen hinzu, um die Ansichten beizubehalten.
Das Problem ist, wenn ich benutze:

self.translatesAutoresizingMaskIntoConstraints = false

Wenn ich dies verwende, erhalte ich zur Laufzeit Autolayout-Warnungen. Aber dieimageView ist in @ verleinterface builder, obwohl das Bild korrekt gerendert wurde.

Wenn ich das gleiche kommentiere, ist alles wie erwartet ininterface builder. Aber die Benutzeroberfläche bricht zur Laufzeit aufgrund vonAutoresizingMaskIntoConstraints.

Ich habe den Code in github. Ich versuche den letzteren Ansatz in @ erwäh TN2154

Ich setze alleAutoresizingMaskIntoConstraints to be false and adding the constraints for the subviews in the code itself. The constraints for the <code>UIView</code> subclass are added in the interface builder directly and no warnings exist as of now. The code works as expected at runtime also. The <code>IBDesignable</code> part is the one that is not working as expected.

<p>Strangely enough, When I removed the line</p><pre><code>self.translatesAutoresizingMaskIntoConstraints = false </code></pre>

everything is working perfectly. The error that I used to get at runtime is now gone. I don't know if something else that I did fixed it. Thanks a lot for helping to pin point the issue @Rob.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage