2010-09-29 6 views
6

Twitter per iPad ha introdotto un nuovo modo di sfogliare i contenuti. Qualcuno ha un'idea di come sono gestiti questi pannelli scorrevoli? C'è un grande UIScrollView con un gruppo di UITableViews in esso? O un mucchio di UIViewControllers che scorre uno sopra l'altro? O qualcos'altro? Qual è la tua scommessa?Twitter per iPad UI - Come funziona?

+0

Il mio più grande domanda: è la scorrimento orizzontale di un UIScrollView (inerzia gratuitamente!) Con un mucchio di codice pazzo in cima ad attuare le fermate di pagina e di accatastamento? O Loren ha implementato tutto questo comportamento da zero? –

+0

Potrebbe essere che usano un UIPageControll modificato per ottenere l'inerzia orizzontale? – Janco

+0

@Janco: UIPageControl è solo un elemento dell'interfaccia utente. Non può fare nulla da solo (tranne rispondere al tocco destro/sinistro ma è ancora necessario collegarlo a un controller). – samvermette

risposta

3

Penso che il trucco qui non sia nei tipi di vista usati, ma piuttosto nel posizionamento e nell'animazione di essi. Quando vari pannelli entrano ed escono, penso che stiano usando qualcosa come alcune CAKeyframeAnimations che si attivano attraverso un'implementazione di UIGestureRecognizer.

Per lo scorrimento verticale utilizzano UIScrollView, ma per lo scorrimento orizzontale, la precedente è la mia scommessa.

+0

Tutte le visualizzazioni delle tabelle sono ovviamente viste di scorrimento, quindi non è necessaria alcuna magia per ottenere lo scorrimento verticale. Le animazioni sono piuttosto semplici (scorri verso sinistra, scorri verso destra); dubbio che avresti bisogno di animazioni per fotogrammi chiave. Ma lo scorrimento orizzontale è in realtà piuttosto complesso. Probabilmente * potrebbe * essere fatto con un riconoscitore di gesti, ma quasi certamente non quelli di serie. –

+0

Penso che si possa fare con UIPanGestureRecognizer e UISwipeGestureRecognizer; sono piuttosto potenti. – hatfinch

-1

Presumibilmente lo sviluppatore ha appiattito un controller di navigazione in pannelli scorrevoli. Eppure nessuna altra informazione è nota a mia conoscenza.

Original tweet

E 'sorta di senso, è fondamentalmente solo un e il modo in cui UINavigationController si sposta su e giù per le modifiche dello stack. Invece di mostrare solo 1 UIViewController alla volta, ora è possibile visualizzare più immagini. Non posso davvero aiutare con l'esatta realizzazione però.

+3

Vale la pena notare: quel tweet è solo un commento concettuale di un ragazzo casuale, non un qualsiasi tipo di informazioni dallo sviluppatore. –

+1

Vale la pena notare: non è un commento di un ragazzo casuale. Mike Rundle (flyosity) è uno sviluppatore iOS molto conosciuto e rispettato. Sono sicuro che abbia avuto le sue ragioni per twittarlo. –

+1

Non stava ostacolando il suo talento. Quello che intendevo era, è un osservatore esterno che parla di come sembra funzionare l'app, non di qualcuno con una conoscenza interna. E, ancora, sta parlando di come l'app funziona concettualmente (sì, si tratta di un controller nav disposto da bordo a bordo), * non * di quanto sia effettivamente realizzato a livello di UIKit (che è ciò che questa domanda sta ponendo). Mi piacerebbe leggere le speculazioni di Rundle su questo! –

0

La mia ipotesi: è un UIScrollView per il movimento orizzontale, con il UIView s dietro la vista principale viene animato a mano, a seconda di dove è la vista principale. Il UIScrollViewDelegate fornisce molti dei metodi necessari per animare lo sfondo UIView s.

2

Ecco il buon esempio di come ottenere un'interfaccia utente simile a twitter per l'app ipad.

Check this link, è davvero fantastico !!!!!

Esso prevede:

  • cascata vede
  • supporto orientamento
  • rimbalza effetto
+0

Il collegamento è morto. Fornire un'alternativa o rimuovere il post. – Marius

+0

Ho trovato un link alla pagina github qui: https://github.com/raweng/StackScrollView – Martin

3

Usando il mio progetto FRLayeredNavigationController su GitHub si può facilmente sviluppare interfacce utente molto simile a l'applicazione Twitter per iPad. C'è anche un blog post a riguardo.

Se ti interessa come funziona, guarda il codice, è open source ;-). Fondamentalmente utilizza la composizione UIViewController come introdotta in iOS 5. Gestisce più "Livelli" che sono UIViewController s forniti. Lo spostamento degli strati viene attivato da un UIPanGestureRecognizer e da una certa logica quando spostare il livello. Sembra e si sente molto bene grazie al bel supporto per l'animazione di iOS.

L'API FRLayeredNavigationController è simile a UINavigationController, quindi è facile da usare :-).I campioni di mio progetto EuroCopaInfo, che utilizza FRLayeredNavigationController:

Nel file di StadiumsViewController.m:

[self.layeredNavigationController pushViewController:wvc inFrontOf:self maximumWidth:YES animated:YES]; 

Da 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]; 

Anche guardare i video dimostrativi/screenshots:

Problemi correlati