Untersichten für benutzerdefinierte UIView mit Spitze (.xib) nicht laden?
Ich bin versuchen, um eine benutzerdefinierte UIView-Klasse mit einer zugeordneten Feder (.xib-Datei) zu helfen, mit layout und Kreation.
Moment, keine Untersichten in meine benutzerdefinierte Ansicht angezeigt, auch wenn Sie vorhanden sind, in meine nib Datei und angeschlossen sind Sie richtig, um meine eigene view-Klasse über IBOutlets.
Ich habe versucht, gehen durch die folgende Antwort:
Laden Sie benutzerdefinierte UIView mit XIB aus einem View Controller view mit IB
- und dieses eine:
Wie bekomme ich eine view im Interface Builder zu laden, eine benutzerdefinierte Ansicht in eine andere Feder?
- und dieses eine:
http://soulwithmobiletechnology.blogspot.com/2011/06/create-uiview-with-nib-file-in-xcode-4.html
aber die Methode [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]
scheint zu rufen -[initWithCoder:]
, was zu einer Endlosschleife.
Bitte lassen Sie mich wissen, was andere details, die helfen, lösen diese Fehler!
UPDATE 1: muss ich die Grundlage für mein Untersichten über -[layoutSubviews]
? Hat meine nib Datei, die tatsächlich nicht legen Sie es aus? Wenn ja, dann was ist der Punkt, der nib-Datei?
- Sind Sie versuchen zu laden, die Spitze initWithCoder oder in awakeFromNib?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie ein view-Controller und fügen Sie diesen code in Ihre
viewDidAppear
Methode:Das ist alles was Sie tun müssen, um eine Ansicht. Wenn Sie interagieren wollen mit dieser Aussicht — Sie haben zu erklären
MyCustomView* problemView
in Ihrer Klasse " Schnittstelle nicht in der Methode.-[viewDidAppear:]
? Warum kannst du nicht instanziieren in-[viewDidLoad]
also solange du nicht tun, werden keine layout?viewDidLoad
als ein Beispiel — zu helfen, KenHaggerty eine Vorstellung bekommt, wie es funktioniert. Jetzt der code funktioniert, er kann es ändern, entsprechend seinen Bedürfnissen.-[viewDidLoad]
und ich mal wieder eine leere Ansicht.viewDidLoad
Sie wird nichts bekommen, weil ViewController der main view noch nicht geladen ist — es ist gleich null. Sie versuchen, um die Untersicht zu einem null-Objekt ist nicht ein Fehler in Obj-C, es funktioniert einfach nichts. Sie können es auch tun, in-(void) viewDidLayoutSubviews
— es wird immer aufgerufen, wenn die Hauptansicht ist schon inited, aber nicht auf dem Bildschirm dargestellt.