Twitter für iPad führte eine neue Art des Browsens von Inhalten ein. Hat jemand eine Ahnung, wie diese Schiebepaneele verwaltet werden? Ist es eine große UIScrollView
mit einer Reihe von UITableViews
drin? Oder ein paar UIViewControllers
übereinander gleiten? Oder etwas anderes? Was ist deine Wette?Twitter für iPad UI - Wie funktioniert es?
Antwort
Ich denke der Trick hier ist nicht in den verwendeten Ansichtstypen, sondern in der Positionierung und Animation von ihnen. Wenn verschiedene Panels ein- und ausgefahren werden, werden einige CAKeyframeAnimations verwendet, die durch eine Implementierung von UIGestureRecognizer aktiviert werden.
Für vertikales Scrollen verwenden sie UIScrollView, aber für das horizontale Scrollen ist das oben genannte meine Wette.
Alle Tabellenansichten sind natürlich Scroll-Ansichten, daher ist keine Magie zum vertikalen Scrollen erforderlich. Die Animationen sind ziemlich einfach (nach links schieben, nach rechts schieben); bezweifle, dass du Keyframe-Animationen benötigst. Aber das horizontale Scrollen ist eigentlich ziemlich komplex. Es könnte wahrscheinlich * mit einem Gestenerkenner gemacht werden, aber mit ziemlicher Sicherheit nicht mit den Gesten. –
Ich denke, es könnte mit Lager UIPanGestureRecognizer und UISwipeGestureRecognizer getan werden; Sie sind ziemlich mächtig. – hatfinch
Angeblich hat der Entwickler einen Navigationscontroller in verschiebbare Panels abgeflacht. Noch sind mir keine anderen Informationen bekannt.
Es Art Sinn macht, es ist im Grunde nur eine UINavigationController
und die Art, wie Sie nach oben und unten dem Stapel ändert. Anstatt nur 1 UIViewController
gleichzeitig anzuzeigen, können jetzt mehrere angezeigt werden. Ich kann jedoch nicht wirklich mit der genauen Implementierung helfen.
Bemerkenswert: dieser Tweet ist nur ein zufälliger Typ konzeptioneller Kommentar, keine Art von Informationen vom Entwickler. –
Erwähnenswert: Es ist nicht irgendein zufälliger Typ Kommentar. Mike Rundle (flyosity) ist ein ziemlich bekannter und respektierter iOS-Entwickler. Ich bin sicher, er hatte seine Gründe, das zu twittern. –
Widersprach sein Talent nicht. Was ich damit meinte war, dass er ein externer Beobachter ist, der darüber redet, wie sich die App zu benehmen scheint, nicht jemand mit Insiderwissen. Und wieder spricht er davon, wie die App konzeptionell funktioniert (ja, es ist ein Nav-Controller, der randständig angelegt ist), * nicht * wie das auf UIKit-Ebene erreicht wird (was diese Frage verlangt). Ich würde gerne Rundles Spekulationen darüber lesen! –
Meine Vermutung: Es ist ein UIScrollView
für die horizontale Bewegung, wobei die UIView
s hinter der Hauptansicht von Hand animiert wird, je nachdem, wo die Hauptansicht ist. Die UIScrollViewDelegate
bietet eine Menge der Methoden, um den Hintergrund zu animieren UIView
s.
Hier ist das gute Beispiel für Twitter-ähnliche UI für iPad-App erhalten.
Check this link, es ist wirklich super !!!!!
Es bietet:
- Kaskade Ansichten
- Orientierungshilfe
- Wirkung Prellen
mein Projekt Mit FRLayeredNavigationController auf GitHub können Sie leicht UIs entwickeln sich sehr ähnlich dem Twitter iPad App. Es gibt auch eine blog post darüber.
Wenn Sie interessiert sind, wie es funktioniert, schauen Sie sich einfach den Code an, der aus Quellen stammt ;-). Im Grunde verwendet es UIViewController
Zusammensetzung wie in iOS 5 eingeführt. Es verwaltet mehrere "Ebenen", die UIViewController
s Sie bereitstellen. Das Verschieben der Layer wird ausgelöst durch eine UIPanGestureRecognizer
und eine gewisse Logik, wann welche Ebene verschoben werden soll. Es sieht und fühlt sich sehr gut an wegen der netten iOS Animation Unterstützung.
FRLayeredNavigationController
Die API ist sehr ähnlich zu UINavigationController
, so dass es einfach zu bedienen ist :-).Die Proben aus meinem EuroCopaInfo Projekt, das FRLayeredNavigationController verwendet:
In Datei StadiumsViewController.m
:
[self.layeredNavigationController pushViewController:wvc inFrontOf:self maximumWidth:YES animated:YES];
Von AppDelegate.m
:
InfoCategoriesViewController *icvc = [[InfoCategoriesViewController alloc] init];
FRLayeredNavigationController *lnc = [[FRLayeredNavigationController alloc] initWithRootViewController:icvc configuration:^(FRLayeredNavigationItem *item) {
item.nextItemDistance = 49;
}];
self.window.rootViewController = lnc;
[self.window makeKeyAndVisible];
auch den Demo-Videos/Screenshots sehen:
- 1. iPad verschiebbare Panel-Steuerung wie Twitter
- 2. Twitter UI Kontrolle
- 3. Wie verschiedene UI-Elemente für iPhone und iPad mit Größenklasse
- 4. oAuth/MGTwitterEngine für das iPad
- 5. Medienabfrage funktioniert nicht für 768px ipad Porträt
- 6. Dynamische Twitter Bootstrap-Tooltips für jQuery UI Slider
- 7. /ipad/i.test() Wie funktioniert die Syntax?
- 8. Kendo UI dataSource geändertes Ereignis: Funktioniert es?
- 9. Warum funktioniert XMLHttpRequest nur für Twitter json?
- 10. jqGrid für Twitter Bootstrap
- 11. SWRevealViewController funktioniert nicht auf iPad
- 12. Twitter SDK auf iOS mit Standard-UI
- 13. Webview funktioniert für iphone aber nicht für ipad
- 14. iPad nur App abgelehnt, weil es nicht funktioniert auf iPhone
- 15. Twitter Bootstrap nennt sie "Badges", gibt es eine weitere allgemeingültige Beschreibung für dieses UI-Muster?
- 16. Storm UI-Topologie funktioniert nicht
- 17. Jquery Schieberegler Bereich funktioniert nicht auf iPad
- 18. AngularJS Ui-Router mit ASP.Net MVC RouteConfig. Wie funktioniert es?
- 19. Reload funktioniert nicht auf Ipad
- 20. Ui-Sref und MD-Taste. Wie es funktioniert?
- 21. iPad-Entwicklung: Block_copy funktioniert nicht
- 22. Wie Paginierung in Twitter-Juwel funktioniert?
- 23. jQuery Live-Event auf dem iPad ... warum funktioniert es nicht?
- 24. Wie funktioniert fliegende Twitter Vogel Arbeit
- 25. iPhone/iPad, OpenGL ES, CADisplayLink
- 26. free() Anruf funktioniert am Simulator, macht iPad wütend. iPad Smash
- 27. Wie funktioniert das OAuth-System von Twitter?
- 28. Nicht Retina iPad App funktioniert gut auf Retina-Display iPad
- 29. Disabled Format-Erkennung für iPhone/iPad Webapp funktioniert nicht
- 30. Twitter bootstrap .popover funktioniert nicht
Meine größte Frage: ist das horizontale Scrollen eine UIScrollView (Trägheit kostenlos!) Mit einem Haufen verrückten Code auf die Seite stoppt und Stapelung zu implementieren? Oder hat Loren all dieses Verhalten von Grund auf umgesetzt? –
Könnte es sein, dass sie ein modifiziertes UIPageControlll verwenden, um die horizontale Trägheit zu erhalten? – Janco
@ Janco: UIPageControl ist nur ein UI-Element. Es kann nichts alleine machen (außer auf den rechten/linken Tipp zu antworten, aber Sie müssen es immer noch mit einem Controller verbinden). – samvermette