2009-05-20 3 views
1

Auf dem Mac ist der beste Weg für einen einfachen Cross-Fade Übergang von Ansichten (ohne individuelle Keyframe Timing) ist so etwas wie der folgende Auszug zu tun:iPhone: Übergang Ansichten mit Core Animation

[[self animator] replaceSubview:aView with:bView]; 

Leider ist die Animator-Eigenschaft auf dem iPhone nicht verfügbar. Was ist die beste Wette, dies auf dem iPhone zu tun? Setzt es Alphakanäle in jeder Ansicht? Beispielcode wäre ausgezeichnet.

Danke.

Antwort

0

Der einfachste Weg, Ansichten auf dem iPhone zu animieren, besteht darin, die Aufrufe UIView beginAnimations und commitAnimations zu verwenden. Mit ihnen können Sie die animierbaren Eigenschaften einer Ansicht ändern und diese Änderungen animieren.

Zum Beispiel habe ich eine benutzerdefinierte Ansicht, die verborgen ist und mit diesem Ansatz gezeigt:

- (void) showAView:(CustomAView *)aView 
{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5];  
    aView.frame = CGRectMake(0.0f, 110.0f , aView.frame.size.width, aView.frame.size.height); 
    [UIView commitAnimations]; 
} 

- (void) hideAView:(CustomAView *)aView 
{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    aView.frame = CGRectMake(0.0f, self.view.frame.size.height, aView.frame.size.width, aView.frame.size.height);  
    [UIView commitAnimations]; 
} 

die Rahmen Eigenschaftsänderung in dem UIView beginAnimations/commitAnimations die Änderung es eine Standard-Animation durch Umwickeln angewandt wird.

Sie können der Animation zusätzliche Eigenschaften hinzufügen, indem Sie UIView-Animationsklassenmethoden verwenden, z.

[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
+0

Hey Paul, kannst du deine Details weiter verbessern, indem du die Ansicht verblasst und eine andere verblasst? Dieser versteckt nur eine Ansicht. Es übergibt den Übergang nicht genau wie der obige Animator. – Coocoo4Cocoa