Wie man die Navigation Bar wie Instagram
Ich implementieren müssen, um so etwas wie dieses:
tableView muss hüpfen, aber nicht die navigation-bar.
Habe ich versucht eine Reihe von verschiedenen Varianten.
So etwas wie dieses:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGRect imageViewFrame = self.imageView.frame;
CGRect tableViewFrame = self.tableView.frame;
//ImageView - is top view(instead of NavBar)
//defaultHeight - is default height of tableView
imageViewFrame.origin.y = MIN(0, MAX(-scrollView.contentOffset.y, -100));
tableViewFrame.origin.y = imageViewFrame.origin.y + 100;
tableViewFrame.size.height = defaultHeight - imageViewFrame.origin.y;
self.imageView.frame = imageViewFrame;
self.tableView.frame = tableViewFrame;
}
Holen Sie sich dieses:
ist es nicht geeignet, da in Instagram-Größe der tableView nicht ändern(schauen Sie nur auf die scroll-Indikatoren, falls die Größe der tableView verändert, Sie verändert auch)
Auch ich habe versucht, hinzufügen, die Ansicht als unteransicht in tableView, es funktioniert, aber nicht genau das, was ich brauche, ist.
In Instagram Navigationsleiste außerhalb der tableView, so ist es nicht geeignet auch.
In der facebook app search bar verhält, genau
Kann mir jemand helfen?
Dank!
- Ich bin wirklich nicht sicher, ob ich diese korrekt ist, sagen Sie, Sie wollen einen header Ansicht, dass die überlagerungen Ihrer Inhalte? Vielleicht steckte mehr Anmerkungen in Ihre Bilder, weil ich nicht sehen, keine Navigationsleisten, die vielleicht was verwirrend mich.
- Ich bin wohl falsch ausgedrückt, ich brauche, um das Verhalten der Navigations-Leiste (oder andere Anzeigen) ist das selbe wie bei Instagram oder Facebook.
- Redest du von der "name-tag" in Instagram?
- Nein, ich spreche über die Navigationsleiste. Aber eigentlich ist mir egal, es wird die navigation bar oder sehen Sie einfach, die Hauptsache ist, dass es brav die gleiche Weise wie in instagram
- Was über die Verwendung des gleichen Ansatzes in der Beispiel-code, sondern eher als die Erhöhung der tableview in der Höhe, können Sie nur schwenken Sie es nach oben. Haben die tableview beginnen mit die komplette Höhe (die ist versteckt durch die tabbar ausgedehnt werden, bis die nav-Ansicht ist aus dem Weg)
- Dies sollte helfen! stackoverflow.com/a/13249526/1257657
- ich habe versucht, aber es funktioniert falsch =(
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben den gleichen Ansatz in der Beispiel-code, sondern eher als die Erhöhung der tableview in der Höhe, Sie haben es bereits mit der zusätzlichen (nicht-sichtbare Höhe) und bewegen Sie es nach oben durch eine Verringerung der frame, den y-Wert. Die zusätzliche Höhe wird off-screen. Wenn der Inhalt die Höhe ist nicht groß genug, um off-screen, dann brauchen Sie nicht zu haben, die off-screen-Höhe.
Fügen Sie einen header mit height = 0 zu beginnen, und als Sie nach unten scrollen erhöht es die Größe, bis zu 100 (der leeren Kopfzeile wird außerhalb des Bildschirms, die jetzt). So wird der Inhalt nicht abgeschnitten werden, wie Sie Blättern.
Den instagram "navigation bar" ist das nicht eine Navigationsleiste. Es ist ein Tisch Abschnitts-header. Sie werden bemerken, dass, wenn Sie Tippen Sie auf ein Foto, die gesamte navigation bar rutscht Weg. Das ist, weil es Teil des table view controller und nicht um eine "echte" navigation bar.
Können Sie erreichen dies, indem Sie einen UINavigationController aber ausblenden der Navigationsleiste (setNavigationBarHidden:JA). Rufen Sie einfach pushViewController:animated: manuell, wenn Sie möchten, zu drücken.
Interessanterweise sieht es aus wie die anderen tabs von instagram benutzen Sie einfach eine normale Navigationsleiste und tun nichts besonderes. Ich denke, dass Sie wirklich wollte, dass diese 44 Punkte zurück auf die Haupt-feed Bildschirm.
Wenn Sie auf iOS 5+, als Sie können leicht anpassen, die navigation bar wie dieser:
1 - Fügen Sie Ihre TableViewController innerhalb eines UINavigationController
2 - Anpassen Der Navigationsleiste:
Set Background Image Navigation Bar
Hinzufügen Schaltfläche Aktualisieren auf der Rechten Seite
Hoffe, das Hilft!
Können Sie die unten genannten Methode in Ihrer Klasse, in die Sie hinzufügen möchten-Effekt auf der navigation bar, wie es in Instagram.