2010-09-29 6 views
6

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?

+0

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? –

+0

Könnte es sein, dass sie ein modifiziertes UIPageControlll verwenden, um die horizontale Trägheit zu erhalten? – Janco

+0

@ 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

Antwort

3

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.

+0

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. –

+0

Ich denke, es könnte mit Lager UIPanGestureRecognizer und UISwipeGestureRecognizer getan werden; Sie sind ziemlich mächtig. – hatfinch

-1

Angeblich hat der Entwickler einen Navigationscontroller in verschiebbare Panels abgeflacht. Noch sind mir keine anderen Informationen bekannt.

Original tweet

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.

+3

Bemerkenswert: dieser Tweet ist nur ein zufälliger Typ konzeptioneller Kommentar, keine Art von Informationen vom Entwickler. –

+1

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. –

+1

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! –

0

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.

2

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
+0

Link ist tot. Stellen Sie eine Alternative bereit oder entfernen Sie den Beitrag. – Marius

+0

Ich habe hier einen Link zur github-Seite gefunden: https://github.com/raweng/StackScrollView – Martin

3

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:

Verwandte Themen