Ziel C: zu machen, Wie die Navigationsleiste, scrollen Sie mit tableview
Ich habe einen UITableView und eine Navigationsleiste in einem einzigen Bildschirm meiner app. Ich möchte die Navigationsleiste gescrollt werden, zusammen mit dem rest der Tabelle.
Hinweis: ich bin derzeit um eine UITableView, die Hinzugefügt wird, als eine Untersicht eines uiviewcontroller, die wiederum Teil eines Navigations-controller
Kann jemand mir raten, wie dies zu tun?
InformationsquelleAutor Zhen | 2011-07-27
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der folgenden Antwort, die ich ausblenden der realen Navigationsleiste und ersetzt es mit einem fake-bar. Wenn Sie möchten, verwenden Sie die real-nav bar statt, der code ist noch gültig, einfach wiederherstellen der ursprünglichen position der Stange in viewWillDisappear.
Ausblenden der navigation-controller bar:
Fügen Sie eine top-bar, wie eine Untersicht der aktuelle controller anzeigen.
In diesem Punkt haben Sie ein headerView und ein tableView unten. Speichern Sie Ihre original-frames:
Fügen Sie diese in der view-controller, die auch Ihren Tisch delegieren:
Dieser überprüft die Tisch-Höhe und bewegt sich top-bar, wie der Tabelle scrollt. Da der tableView ist, die sich über der zuvor gefüllt, die von der oberen Leiste, ich bin auch eine Vergrößerung der Größe der Tabelle anzeigen.
edit: gerade hochgeladen ein Umsetzung in github mit einem top-bar von 80 Pixel und kHiddenPixels=35:
Einer möglichen Verbesserung: gerade jetzt, da die erste Zeile der tableView scrolls unter der oberen Leiste, die top-bar-scrolls-unter-die-Uhr-bar. Es würde natürlicher Aussehen wenn der tableView und der oberen Leiste Blättern zusammen, bis der Obere Balken verschwunden ist, und lassen Sie dann die 1. Zeile beginnen scrollen unter der oberen Leiste. Nicht sicher, wie dies zu tun, vielleicht mit einem pan-gestik-Erkennung und Deaktivierung der Tabelle scrollen Sie, bis die bar versteckt ist.
Die einzige Möglichkeit, eine navigation bar kann gescrollt werden, mit den anderen Zellen der Tabelle-view ist, wenn die Navigationsleiste ist ein Teil der Tabelle, Ansicht oder ist eine Untersicht eines größeren scroll-Ansicht (zusätzlich zu den table-view Untersicht). überprüfen Sie heraus diese Frage: Wie kann ich die Navigationsleiste scrollen zusammen mit meiner Webseite?. Einen größeren scroll-Ansicht und fügen Sie die Tabelle-Ansicht und navigation-bar, um diese scroll-Ansicht. Wenn Sie möchten, um die Navigationsleiste ein Teil des table-view, den Sie brauchen, um eine custom-Zelle für das, was entstehen wird viel mehr Aufwand!