2016-08-06 6 views
0

Gibt es eine Möglichkeit, Convenience-Initialisierer zu einer benutzerdefinierten UIView hinzuzufügen, die von einer Nib geladen wird?Convenience-Initialisierer für angepasste uiview geladen von .xib

Zum Beispiel deckt diese Liste die allgemeine init Methode ab, hat aber keine praktischen Initialisierer. Ich habe ein paar Eigenschaften, die ich in meiner benutzerdefinierten UIView bei der Initialisierung festlegen möchte.

https://gist.github.com/bwhiteley/049e4bede49e71a6d2e2

Antwort

1

Die Methode, die Sie außer Kraft setzen wollen, ist awakeFromNib (genannt nach der Initialisierung) oder viewDidLoad (genannt nach der Ansicht geladen wird). In den meisten Fällen ist es einfacher, die Initialisierung in viewDidLoad zu platzieren. Ihre Convenience-Initialisierer werden nicht aufgerufen, wenn Sie von einer Nib geladen werden (die Initialisierung erfolgt in diesem Fall über init(coder:)).

+0

Ich bin mir nicht sicher, ich verstehe, wie/wo kann ich Werte für die Initialisierung übergeben? Ich könnte natürlich die benutzerdefinierte Ansicht erstellen und dann eine andere Methode aufrufen, um bestimmte Werte festzulegen, aber kann ich diese kombinieren? –

+1

Wohin würden Sie die Werte weitergeben? Nibs werden vom System geladen; Sie initialisieren keines dieser Objekte. Sie können während der Initialisierung der Ansicht keine Werte übergeben. Sie können Set-Eigenschaften nur dann übergeben, wenn die Ansicht geladen ist (in der Regel von ihrem Controller aus). –

+0

natürlich! Danke Rob! –

Verwandte Themen