Machen Sie eine benutzerdefinierte UIView Untersicht, füllt seinen superview

Also schrieb ich meine eigene benutzerdefinierte Sicht mit seiner eigenen Initialisierung. Aber wenn meine Haupt-Ansicht lädt meine benutzerdefinierte Ansicht wird dargestellt in einer falschen Art und Weise. Es braucht Grenzen als 600x600 Rechteck, während die superview ist 375x607. Ich versuchte mit auto-constraint, scheint nicht zu funktionieren. Ich versuchte es programmatisch in der Untersicht der Initialisierung, aber immer wenn ich versuche zu initialisieren, die bounds-Eigenschaft zu seinem superview Grenzen bekomme ich null in superview.

override init(frame: CGRect) {
    super.init(frame: frame)
    self.setup()
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    self.setup()
}

func setup() {
    initPathLayer()
    initHandleView()
    initHandlePanGestureRecognizer()

    layoutPathLayer()
    layoutHandleViews()
}

Habe ich versucht, alles, was da ist, auf dem internet zu machen Untersicht füllen seine superview, aber ich denke, dass die Untersicht wird initialisiert, bevor superview? Ist das möglich ? In der ViewController einen haben meine benutzerdefinierte Ansicht erklärt, wie eine Steckdose-Verbindung. Ich bin mir sicher, dass das problem sein sollte super einfach und es ist mir, wer kennt Sie nicht, die Art und Weise Swift die Ansicht initialisiert.

Irgendwelche Ideen ?

Danke.

  • Versuchen Sie, die zeigen, welche Einschränkungen Sie Hinzugefügt, dass sollte funktionieren. Sonst ist die Methode layoutSubviews, die Sie überschreiben können, um explizit den Rahmen
  • Die Sache ist, dass der unteransicht nicht zu sehen sein superview, bis es initialisiert wird. Ich mache Screenshot mit Einschränkungen
  • Schauen Sie einfach nur auf Ihren code, den Sie nur mit layout-Methoden innerhalb von layoutSubviews
  • Danke!!! Das war es eben. Wie gesagt, es war ein sehr kleines problem und die Ursache davon war meine Unerfahrenheit.
  • Haha keine Sorge, aber Sie sollten auf jeden Fall in der Lage sein zu vertreten, diese in Einschränkungen, so bin ich besorgt, dass das nicht funktioniert
  • Ich stellte eine umfassende Lösung für Ihre Frage, lassen Sie mich wissen, wenn es hilft

InformationsquelleAutor Olexiy Burov | 2015-04-21
Schreibe einen Kommentar