Obtenir la position actuelle de l'animation de scrollview

j'ai eu le problème suivant.

je sous-classé un uiscrollview qui contentOffset est animé par le présent code:

[UIView animateWithDuration:1.0 
                      delay:1.0
                    options:options
                 animations:^{
                     self.contentOffset = CGPointMake(label.frame.size.width, 0);

                 }
                 completion:^(BOOL completed) {
                     //some other stuff
                 }];

Maintenant, lorsque l'utilisateur "willBeginDragging" la scrollview, je veux arrêter le courant de l'animation et de l'ensemble de la scrollview.contentoffset à la position actuelle dans le uianimation.

par exemple, l'utilisateur obtient sur l'écran, après 1 seconde, le défilement de la vue commence à défiler, si l'utilisateur touche de défilement au bout de 2 secondes et faites-le glisser, la scrollview.contentoffset devrait avoir la position exacte de l'animation en cours position.

si je reçois le contenu valeur de décalage dans la willbegindrag méthode, déjà que la dernière valeur de l'animation, uianimation définit les valeurs à la fin de l'état, puis animer.

comment puis-je obtenir la position actuelle du contenu de décalage de l'exécution de l'animation?

NSLog(@"pos of content x %f, y %f", [[self.layer presentationLayer] frame].origin.x, [[self.layer presentationLayer] frame].origin.y);

j'ai lu sur la couche de présentation, mais la vue elle-même n'est pas animé, j'ai besoin de la scrollview.contentoffset.

mhh, des idées? thx

DÉJÀ RÉSOLU:

L'auto.couche presentationLayer est absolument correcte.

Mais j'ai eu à utiliser les limites et de ne pas le cadre....

Désolé, maintenant vous et je le sais 😛

De sorte que le code correct est:

CGPoint pos = [[self.layer presentationLayer] bounds].origin;

pour obtenir la position courante d'un animé scrollview tout en animation.

OriginalL'auteur philipp | 2011-09-08