contentOffset von UIScrollView während der rotation

Ich manuell aktualisieren möchten der contentOffset einer UIScrollView während der rotation ändert. Die scroll-view füllt den Bildschirm und hat eine flexible Breite und flexibler Höhe.

Ich versuche momentan ein update der contentOffset in willRotateToInterfaceOrientation wie diese:

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    [Utils logPoint:myScrollView.contentOffset tag:@"initial"];
    myScrollView.contentOffset = CGPointMake(modifiedX, modifiedY);
    [Utils logPoint:myScrollView.contentOffset tag:@"modified"];
}

-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [Utils logPoint:myScrollView.contentOffset tag:@"final"];
}

Jedoch, der Letzte Wert ist nicht der geänderte Wert, und es irgendwie zu sein scheint, von ihm beeinflusst, aber es ist nicht ersichtlich für mich wie.

Diese sind einige der Ergebnisse, die ich bekomme:

initial: (146.000000;-266.000000)
modified: (81.000000;-108.000000)
final: (59.000000;-0.000000)

initial: (146.000000;-266.000000)
modified: (500.000000;500.000000)
final: (59.000000;500.000000)

initial: (146.000000;-266.000000)
modified: (-500.000000;-500.000000)
final: (-0.000000;-0.000000)

Wie aktualisiere ich die contentOffset einer scroll-view während einer rotation ändern?

  • Haben Sie versucht, ändern der contentOffset in willAnimateRotationToInterfaceOrientation statt? Eine animation-block vorhanden sein sollten, dann vielleicht das Ergebnis anders.
  • Ja, und Es funktioniert gut. Trotzdem würde ich gerne wissen, warum es verhält sich nicht wie erwartet, wenn ich es ändern in willRotateToInterfaceOrientation.
  • Meine Vermutung wäre, dass der Rahmen der Elternteil nur die änderungen nach willRotateToInterfaceOrientation Sie eine andere contentOffset, aber das ist man änderte sich sofort wieder, weil der superview-Rahmen auch, nur ändert sich dann. Für das OS ist es, wie Sie sich geändert haben würde den Rahmen einige Zeit früher, weder in Bezug auf die anstehende rotation.
  • Würden Sie mir Ihren Kommentar als Antwort? Ich denke, Sie sind nützlich und verdienen upvotes.
  • Gute Idee. Es ist nicht so, dass ich nicht wollen, dass diese Punkte... 😉
InformationsquelleAutor hpique | 2010-09-05
Schreibe einen Kommentar