NOTA: Ho aggiunto la mia nuova soluzione alla seguente risposta UPDATE.Dissolvenza in entrata/uscita Contenuto di UIScrollView come Mobile Safari nella sua scheda
Provo a ricreare gli effetti che abbiamo visto nella scheda di Mobile Safari su iPhone/iPod touch.
Fondamentalmente, è un UIScrollView che contiene 4 UIView riutilizzabili (che agisce come un buffer circolare) e scorre in orizzontale. Durante lo scorrimento, l'opacità di UIView si dissolvenza in apertura/uscita senza interruzioni.
Attualmente, faccio tutto il lavoro sporco in - (void)scrollViewDidScroll:(UIScrollView *)scrollView
. Come ottenere contentOffset da UIScrollView, determinare il pageingation, calcolare il delta tra contentOffset e ciascuna posizione di UIView e decidere/impostare il valore alfa di ogni UIView nel momento in cui è stato chiamato scrollViewDidScroll:
.
E funziona, le prestazioni sono a posto, tutto funziona senza intoppi, ma l'unico problema è troppo calcolo.
ho cercato di beginAnimations:
e commitAnimations:
, ma è inutile in scrollViewDidScroll:
, dal momento che 1) il nuovo valore alfa devono ancora essere il calcolo da me, e 2) scrollViewDidScroll UIView: tenuto chiamato durante lo scorrimento, è priva di significato per fare l'animazione qui. C'è un modo per riscrivere questa parte con Core Animation? Quindi non devo fare la matematica io stesso sul valore alfa di ogni UIView, invece, posso lasciare intere opere a Core Animation.
Solo trovandolo ora, ed è fantastico - grazie per averlo condiviso! Un problema tecnico: l'alfa iniziale non è impostato per la visualizzazione a schermo singolo. Suppongo che potrei chiamare updateAlpha: esplicitamente, ma forse è sufficiente impostare contentOffset in modo esplicito all'inizio. Pensieri? –