2014-04-06 16 views
28

Ho un UICollectionView e quando un elemento è selezionato, mi piacerebbe animarlo a schermo intero. In questo modo passerebbe dalla dimensione della cella a schermo intero e diventerà un UIViewController. Pinterest e Evernote hanno entrambi questo comportamento in cui toccare su una cella transizioni la cella in un controller di visualizzazione a schermo intero.Come passare da UICollectionView a UIViewController come Pinterest/Evernote

C'è qualche esempio di come questo è fatto? Ho cercato diversi progetti, ma non ho trovato alcuna illustrazione sulla transizione di una cella a un controller di visualizzazione a schermo intero.

Pinterest discute qui: http://engineering.pinterest.com/post/67769846580/behind-the-pins-building-pinterest-3-0-for-ios

enter image description here

+0

hai mai trovato la risposta? Sto cercando di fare lo stesso qui .. –

+2

@OscarYuandinata Forse dovresti provare questo [repo] (https://github.com/demon1105/PinterestSwift) – demon

+0

wow fantastico! thx @demon –

risposta

19

Non è difficile da implementare questa transizione. Proprio come ha detto l'articolo, hanno personalizzato una transizione per implementare il protocollo UIViewControllerAnimatedTransitioning, nient'altro. È necessario calcolare la nuova dimensione della posizione che imageView hai toccato per animare. Questo è tutto.

Queste nostre due app implementano questo effetto di transizione simile con questo metodo sopra.

https://itunes.apple.com/app/hua-ban-quan-qiu-you-mei-tu/id494813494?mt=8

E questo:

https://itunes.apple.com/app/mei-tu-sou-sou-wan-zhuan-wei/id781146829?mt=8


avevo creato questo repo diversi giorni prima. E con Swift, ho quasi completato questa transizione accanto ad un piccolo problema, questo è il mio primo progetto demo basato su Swift. Ma non è difficile capire se non sei una matricola in iOS e imparerai Swift BTW. Lo finirò e sistemerò i bug più tardi.

Nel progetto reale è più complesso di quello demo, ma con quello, forse avresti saputo come ottenere questo tipo di transizione.

Buona fortuna.

+0

Grazie. Capisco teoricamente, ma sarebbe bello vedere un esempio reale usando il codice per comprendere veramente le complessità. Ad esempio, sia nella tua app che in Pinterest, la posizione della cella cambia anche quando si esegue lo zoom indietro. Ci sono piccole cose che hanno un senso concettualmente, ma in realtà è la codifica che è la sfida. – user1218464

+0

@ user1218464 Roger, ti mostrerò una demo per implementare questo, forse un giorno dopo, e mi piacerebbe vedere se c'è un modo migliore per fare questa transizione, dopo aver finito modificherò questa risposta. – demon

+0

Ehi, volevo sapere, cosa succede se voglio cancellare una cella dalla vista della collezione quando si tocca su un pulsante, come dovrei implementarla? – Stephanie