Aktuelle position der animierten scrollview

ich hab Folgendes problem.

ich Unterklassen eine uiscrollview die contentOffset animiert, indem Sie diesen code ein:

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

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

Nun, wenn der Benutzer "willBeginDragging" die scrollview, ich will stoppen Sie die aktuelle animation und setzen Sie den scrollview.contentoffset der aktuellen position hat es in der uianimation.

zum Beispiel, bekommt der Benutzer in den Bildschirm, nach 1 Sekunde die scroll-view scrollen beginnt, berührt der Benutzer die Blättern Sie nach 2 Sekunden und ziehen Sie es mit der scrollview.contentoffset sollte die genaue position der aktuellen animation position.

wenn ich die " Inhalts-offset-Wert in der willbegindrag Methode, die es schon als der Letzte Wert der animation, wie uianimation-sets die Werte an das Ende Stand und dann animieren.

wie bekomme ich die aktuelle position des Inhalts-offset aus der Laufenden animation?

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

ich gelesen habe, über die Präsentations-Schicht, aber die Ansicht selbst ist nicht animiert, ich brauche das scrollview.contentoffset.

mhh, irgendwelche Ideen? thx

BEREITS GELÖST:

Selbst.Schicht presentationLayer ist absolut richtig.

Aber ich musste die bounds und nicht den frame....

Sorry, jetzt Sie und ich weiß es 😛

Also der richtige code ist:

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

um die aktuelle position eines animierten scrollview während der Animation.

InformationsquelleAutor der Frage philipp | 2011-09-08

Schreibe einen Kommentar