Frage

habe ich ein Anfänger iPhone-Projekt gehen. Ich habe eine Tableview, die mit einer Reihe von Einträgen und einem kleinen uiview auf dem Boden nur ein listbox ist. Siehe das Bild.

Das Problem ist, dass die UIView wesentlichen Teile der Listbox werden und wird nur angezeigt, wenn ich in der Tableview zum letzten Punkt nach unten scrollen.

Ich mag die UIView am Boden verankert werden und nie bewegen. Ich habe rund um den Interface Builder geschaut und nichts finden können (wenn auch in seiner Verteidigung ich insgesamt noob iPhone dev bin). Wie erreichen ich einen Trick wie das?

alt text http://www.sqleffects.com/mystuff/ibissue.jpg

War es hilfreich?

Lösung 4

Unter dem Strich ist dies: Wenn Sie Ihr Projekt auf der Vorlage Navigation erstellen basiert, können Sie die UITableView, Zeit nicht ändern.

So zu tun, was ich will, ich muss grundsätzlich von Grund auf neu starten und eine Ansicht oder Fenster basierte Vorlage auswählen und die UITableView auf sie manuell löschen.

Andere Tipps

Ok, was Sie brauchen, ist eine UIView, die

enthält
  1. eine UIView, die als Tableviewcontroller fungiert und somit haben die UITableViewDelegate und UITableViewDataSource Protokolle zu implementieren (aber es darf nicht von UITableViewController direkt abgeleitet werden, da durch dabei die UITableView wird automatisch die gesamte Bildschirmgröße nehmen (außer Symbolleiste, NavBars und / oder tabbars))
  2. ein anderes UIView, die, die Sie am unteren Rand auf Platz möchten

Auf diese Weise können Sie ein UITableView in IB erstellen (keinen UITableViewController!) Und verbinden Sie es mit der UITableView Eigenschaft in Ihrem UIView (der in 1 erwähnt.)

Mit dieser Methode ist es möglich, den UITableView eine feste Größe zu geben (die Sie brauchen werden, Platz für Ihre zweite UIView am Boden zu haben)

gabtub Antwort bauen ab, die UIView Ihre Tabellenansicht und Ihre Unteransicht enthält, muss nicht die UITableViewDelegate und UITableViewDataSource Methoden implementieren.

Da es sich, wie Sie sich Gebäude mit einem View-Controller klingt, würde ich Ihre Hauptansicht-Controller eine Unterklasse von UIViewController (anstelle der Verwendung UITableViewController) machen. Sie könnten dann fügen Sie Ihre UITableView und Ihre UIView der Ansicht Instanz UIViewController.

Ich würde dann machen Sie Ihre UIViewController die UITableViewDelegate und UITableViewDataSource Protokolle implementieren Unterklasse - Sie werden am Ende mit etwas, das aussieht ähnlich (Code-weise) zu Ihrer alten UITableViewController Unterklasse, aber es ist der Ansicht Eigenschaft wird die zugrunde liegende UIView sein statt UITableView Instanz (wenn Sie im Debugger herumzustochern, können Sie die [UITableViewController Ansicht] sehen und [UITableViewController Tableview] kehrt das gleiche Objekt)

Einer der Vorteile gegenüber Vorschlag gabtub ist es erspart Ihnen die Erstellung, da Sie haben eine einmalige UIView Unterklasse, wahrscheinlich bekam bereits eine einmalige UIViewController Unterklasse (oder, hatte zuvor eine einmalige UITableViewController Unterklasse).

Das Problem ist wahrscheinlich, dass gerade jetzt, die UIView ist ein Abschnitt Fußzeile Ansicht und wird daher in der Tabellenansicht enthalten sind.

Wenn Sie die UIView aus dem Tableview löschen, skalieren, um die Tableview zu machen Platz für die UIView und ein bisschen mehr und setzen Sie Ihre UIView, wo Sie es wollen, wird es wahrscheinlich auf die Super der Tableview hinzugefügt werden. Anschließend können Sie die Tableview auf die richtige Größe ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top