Entwerfen von UICollectionView-Zellen in der Nib mit Interface Builder (ohne Storyboard)
Ich versuche, eine benutzerdefinierte UICollectionViewCell
Prototyp (in Xcode 5.0.2), doch der Interface Builder nicht lassen Sie mich hinzufügen: eine Zelle, um mein UICollectionView
während der Gestaltung einer Feder. Ich kann die Anzahl der Elemente (Zellen) und Interface Builder erstellt und zeigt Zellen perfekt wenn ich mit storyboard, aber ich kann nicht fügen Sie eine Zelle, um meine Sammlung anzeigen in einer Spitze. Ich habe versucht:
- Ziehen und ablegen Sammlung anzeigen-Zelle in die collection view manuell aus der Bibliothek-Objekt. (schlägt fehl: nicht lassen Sie mich fallen die Zelle irgendwo in meinem view)
- Der Erstellung meiner Sammlung ansehen, mit Zellen, in storyboard und kopieren-einfügen die ganze Ansicht in nib. (schlägt fehl: die Auflistung anzeigen ist kopiert, aber die Zelle ist Weg)
- Der Erstellung meiner Sammlung anzuzeigen, die mit Zellen im storyboard, öffnen Sie das storyboard als source-code, Suche nach meiner Ansicht Sammlung von Zellen, kopieren Sie die entsprechende XML-Datei, beim öffnen meiner Feder als Quellcode einfügen, wird es in meine Sammlung anzeigen in XML. (schlägt fehl: unable to open die nib im Interface Builder, es gibt Fehler. Wenn ich entfernen Sie die Zelle aus dem source-code, es öffnet sich wieder. Tun nicht versuchen Sie dies, wenn Sie nicht wissen, was Sie tun.)
Habe ich auch gesehen, einige Fragen über das gleiche Problem:
- Ist es möglich, die Erstellung von Prototypen-Zellen in Interface Builder ohne story-boards?
- Benutzerdefinierte Header in UICollectionView mit Interface Builder ohne Storyboard
- Prototyp-Zellen, in der eine Feder statt eines Storyboards
Sie alle darauf hinweisen tun Sie programmatisch und/oder über eine andere Feder für die Zelle. Ich weiß, wie Ihnen zu tun, aber gibt es eine Möglichkeit zum design der collection view-Zelle, in einer Auflistung anzeigen innerhalb der gleichen Ansicht in einer Spitze, so wie im storyboard? Warum nicht den Interface Builder lassen Sie mich tun, dass in der Spitze, wo es erlaubt (und sogar ermutigt), perfekt mit storyboard?
InformationsquelleAutor der Frage Can Poyrazoğlu | 2014-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die einfache Antwort ist Nein, dies kann nicht getan werden. Denken Sie sich ein storyboard als eine Sammlung von XIBs. Eine XIB-einfach definiert die Facetten einer bestimmten Ansicht, so dass Sie gebaut werden kann, zur Laufzeit.
Hinsichtlich der Sammlung von Ansichten und Ihre storyboard-Implementierungen, es ist wichtig zu verstehen, dass ein storyboard erlaubt die Schachtelung von viewcontrollers und die Definition von Sammlung, Ansichten mit Ihren XIBs denn das hält die grundlegenden Paradigmenwechsel von storyboards in sich stimmig. Seit ein storyboard ist die Definition der "story" oder die Szene, in der eine Anwendung es ist nur natürlich, dass es ermöglicht, die für die Erklärung der wiederverwendbare Ansichten für die Verwendung in einer Auflistung anzeigen.
Das gleiche kann nicht gesagt werden, für XIBs, weil die grundlegende Idee hinter XIBs ist in der Wiederverwendbarkeit. Dies ermöglicht eine collection view definiert in einer XIB-haben alle Zellen, die Sie mit ihm so lange, wie der controller diese Klassen registriert mit der Sammlung anzuzeigen. Auf diese Weise erhalten Sie den Vorteil der Wiederverwendbarkeit als einen anderen controller verwenden können, die gleiche XIB und registrieren die verschiedenen Zellen etc.
So, ich denke, es wäre viel mehr verwirrend ist, dass für die Erklärung der unterstützten Zellen eine Sammlung Blick in einen XIB-da bricht das Prinzip der einzigen Verantwortung(wenn es aufgerufen werden kann), dass XIBs Streben.
Ihre beste Lösung wäre, um eine benutzerdefinierte Sammlung anzeigen-Unterklasse, registriert die relevanten Zellen bei der Instanziierung übergeben wird, und anschließend diese Klasse in Ihrer XIB.
InformationsquelleAutor der Antwort Daniel Galasko