ho il seguente problema.Ottieni la posizione corrente di scrollview animata
i sottoclasse un UIScrollView che contentOffset è animato da questo codice:
[UIView animateWithDuration:1.0
delay:1.0
options:options
animations:^{
self.contentOffset = CGPointMake(label.frame.size.width, 0);
}
completion:^(BOOL completed) {
//some other stuff
}];
Ora, quando l'utente "willBeginDragging" lo ScrollView, voglio interrompere l'animazione corrente e impostare lo scrollview.contentoffset alla corrente posizione che ha nell'emanazione.
ad esempio, l'utente entra nello schermo, dopo 1 secondo la visualizzazione a scorrimento inizia a scorrere, se l'utente tocca lo scroll dopo 2 secondi e lo trascina, scrollview.contentoffset dovrebbe avere la posizione esatta della posizione di animazione corrente .
se ottengo il valore di offset del contenuto nel metodo willbegindrag, è già l'ultimo valore dell'animazione, poiché uianimazione imposta i valori allo stato finale e quindi l'animazione.
Come ottengo la posizione corrente dello spostamento del contenuto dall'animazione in esecuzione?
NSLog(@"pos of content x %f, y %f", [[self.layer presentationLayer] frame].origin.x, [[self.layer presentationLayer] frame].origin.y);
`ve leggere sul livello di presentazione, ma la vista in sé non è animato, ho bisogno del scrollview.contentoffset.
mhh, qualche idea? thx
già risolto:
Il self.layer presentationLayer è assolutamente corretto.
ma ho dovuto usare i limiti e non la cornice ....
Siamo spiacenti, ora e so che: P
Quindi il codice corretto è:
CGPoint pos = [[self.layer presentationLayer] bounds].origin;
per ottenere la posizione corrente di una vista a scorrimento animata durante l'animazione.
grazie mille – SampathKumar
tutti i ritorni 0.000, –
Questa risposta è off-topic. La domanda riguarda il recupero di contentOffset a metà animazione. Questa soluzione ottiene contentOffset ogni chiamata di scorrimento. – rizzes