sto sperimentando con iOS SDK e ho la seguente UIView
struttura:Moving maschera CALayer sul rotolo in uno Scrollview
UIView
UIImageView
- solo un'immagine di sfondoUIImageView
(con unCALayer
maschera)UIScrollView
Label
Molto semplice struttura, è UIScrollView
strato trasparente e secondo UIImageView
ha una maschera su di esso. Quello che sto cercando di fare è che la maschera CALayer
sposterebbe la sua posizione in base alla posizione del contenuto nella visualizzazione di scorrimento. Se l'utente scorre, la posizione della maschera deve essere aggiornata. Ho già risolto questo problema utilizzando UIScrollView
's delegato:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint contentOffset = scrollView.contentOffset;
contentOffset.y = -contentOffset.y;
self.overlayImageView.viewlayer.mask.position = contentOffset;
}
maschera viene creato in viewDidLoad
e non cambia durante il ciclo di vita vista del controllore.
Il problema è che l'aggiornamento della posizione della maschera è troppo lento. In questo modo sembra che la maschera segua il contenuto della vista di scorrimento, non scorrendo con esso. Il metodo delegato scrollViewDidScroll
viene chiamato correttamente.
Per capire meglio il problema, allego un video che ho realizzato con il simulatore iOS. http://www.youtube.com/watch?v=w3xRl3LTngY
Quindi la domanda è:
C'è un modo per rendere l'aggiornamento maschera più veloce o questo è il limite di iOS?
Grande, risolve il problema. Grazie mille. Le modifiche alla posizione della maschera sono ora molto più fluide. – Legoless