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?
risposta
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.
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. –
Penso che si possa fare con UIPanGestureRecognizer e UISwipeGestureRecognizer; sono piuttosto potenti. – hatfinch
Presumibilmente lo sviluppatore ha appiattito un controller di navigazione in pannelli scorrevoli. Eppure nessuna altra informazione è nota a mia conoscenza.
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ò.
Vale la pena notare: quel tweet è solo un commento concettuale di un ragazzo casuale, non un qualsiasi tipo di informazioni dallo sviluppatore. –
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. –
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! –
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.
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
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:
- 1. Controllo pannello scorrevole iPad come Twitter
- 2. UI Problema con il calendario kal per ipad?
- 3. possiamo usare jquery ui con twitter-bootstrap?
- 4. window.onbeforeunload non funziona su iPad?
- 5. Come funziona il sistema OAuth di Twitter?
- 6. sezionando Twitter per Mac: come funziona questa incredibile interfaccia utente
- 7. chiamata gratuita() funziona su simulatore, rende iPad arrabbiato. iPad smash
- 8. Come funziona #import nell'automazione UI di iOS?
- 9. Ui-sref e tasto md. Come funziona?
- 10. Twitter Bootstrap Popovers non funziona
- 11. Twitter bootstrap modal non funziona
- 12. Twitter bootstrap .popover non funziona
- 13. ui-router - $ state.go() non funziona
- 14. AudioServicesPlaySystemSound non funziona su dispositivo iPad
- 15. SKStoreProductViewController non funziona su iPad iOS 8
- 16. CSS trasformare: translate non funziona su iPad
- 17. Flexbox non funziona su iPad e Safari
- 18. zbar SDK non funziona per armv7s (iPad 4 iOS 7)
- 19. L'uso di window.location non funziona su iPad
- 20. Python FTP per iPad
- 21. scrollToTop non funziona su iPhone ma funziona su iPad
- 22. JSON.parse non funziona su iPad safari
- 23. Il framework cocos2d funziona su iPad?
- 24. iOS5 iPhone non funziona su iOS6 iPad
- 25. nav-collapse non funziona [Twitter Bootstrap]
- 26. Twitter Bootstrap .on ('show', function() {}); non funziona per popover
- 27. Twitter Bootstrap Popovers non funziona per contenuto generato dinamicamente
- 28. Twitter Bootstrap non funziona con less.js
- 29. twitter popover bootstrap non funziona con angularjs
- 30. Kendo UI dataSource evento modificato: funziona?
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? –
Potrebbe essere che usano un UIPageControll modificato per ottenere l'inerzia orizzontale? – Janco
@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