2012-12-04 24 views
5

Sto provando ad implementare la parallasse orizzontale su una vista a scorrimento di paging che fa in modo che una vista sembri avanzare più velocemente nella direzione x ma "atterra" nello stesso punto (ad esempio, per esempio (0,0)). Qui è il mio generale gerarchia setup/Vista:Scorrimento parallasse orizzontale UIScrollView iOS

  • (scroller trasparente, che intercetta/passa attraverso scroll eventi)
  • (oggetto di sovrapposizione che voglio spostare 1,2x passo nella direzione x , ma doesn 't superano che è 'punto di atterraggio')
  • (un'altra sovrimpressione che voglio spostare a un ritmo 1.0x nella direzione x )

so che ha a che fare qualcosa con la modifica del contentOffset ed io ho la mia dele cancella tutti i setup in modo che possano muoversi tutti con il passo 1x nella stessa direzione ... qualche suggerimento sulla soluzione?

risposta

3

Se si desidera mantenere la configurazione corrente, è sufficiente utilizzare il metodo delegato -(void)scrollViewDidScroll:(UIScrollView *)scroller con lo scroller che sta monitorando gli eventi di scorrimento. In questo metodo seguirai l'offset del contenuto e utilizzerai i moltiplicatori di velocità per spostare le altre visualizzazioni nel modo desiderato.

Tuttavia è possibile farlo facilmente con solo 2 immagini a scorrimento e, quando si sposta, è possibile rintracciare il proprio contentOffset nello stesso metodo di delegazione -(void)scrollViewDidScroll:(UIScrollView *)scroller e spostare l'altro di conseguenza.

Inoltre, se i due scrollviews sono di dimensioni diverse, un effetto di parallasse naturale è incredibilmente facile da raggiungere il tracciamento della contentOffset nel metodo -(void)scrollViewDidScroll:(UIScrollView *)scroller delegato e quindi utilizzando il valore e del contentSize ScrollView per ottenere una percentuale di quanto lo ScrollView spostato e quindi semplicemente impostare il contentOffset della scrollview secondaria per scorrere la percentuale di esso è contentSize.

Fatemi sapere se avete bisogno di ulteriori spiegazioni.

+0

Come si ottiene la vista secondaria per atterrare nello stesso punto ogni volta? Il contenuto di entrambi gli scrollers dovrebbe essere lo stesso? L'app è Instago nell'app store, voglio le caselle colorate nella presentazione sulla home page che mostra la posizione da spostare a una velocità diversa dopo il tocco. Ho bisogno che gli strati si muovano a ritmi diversi e non sono sicuro di come spostare i livelli come percentuale dell'altro aiuterebbe a ottenere questo effetto. – nmock

+0

Se si desidera scaricare un'app con l'effetto di cui sto parlando, consultare https://itunes.apple.com/us/app/american-revolution-interactive/id489614145?mt=8 (è gratuito). In questa app il terreno posteriore e la timeline (in primo piano) hanno larghezze diverse. Quindi ognuno sposta la stessa percentuale e il 10% del primo piano più pixel del 10% dello sfondo, quindi il primo piano sembra muoversi più velocemente. Se vuoi mantenere la visualizzazione dello stesso contenuto, puoi comunque scegliere di muoverne uno più veloce, ma poi quello che si muove più velocemente dovrà smettere di muoversi prima che il movimento più lento si muova. –

+0

Questo funziona per te? –

Problemi correlati