2010-11-01 5 views

Antwort

25

Also gleich nachdem ich Enter gedrückt habe, habe ich plötzlich zwei und zwei zusammengefügt und dachte mir, dass das Metronom-Sample irgendwie wie eine Schwingtür funktioniert und das führte mich zu ein paar anderen Möglichkeiten.

Hier ist meine Lösung:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // Set the anchor point and center so the view swings from the upper right 
    swingView.layer.anchorPoint = CGPointMake(1.0, 0.0); 
    swingView.center = CGPointMake(CGRectGetWidth(self.view.bounds), 0.0); 

    // Rotate 90 degrees to hide it off screen 
    CGAffineTransform rotationTransform = CGAffineTransformIdentity; 
    rotationTransform = CGAffineTransformRotate(rotationTransform, DegreesToRadians(90)); 
    swingView.transform = rotationTransform; 
} 

... 

- (void)animateSwing { 

    CGAffineTransform swingTransform = CGAffineTransformIdentity; 
    swingTransform = CGAffineTransformRotate(swingTransform, DegreesToRadians(0)); 

    [UIView beginAnimations:@"swing" context:swingView]; 
    [UIView setAnimationDuration:0.25]; 

    swingView.transform = swingTransform; 

    [UIView commitAnimations]; 
} 

Hope this jemand anderes zu helfen!

+0

BTW, diese Antwort hat mich zu einer anderen Animation aus der Metronom-Probe geführt. Ich denke, es ist ein bisschen sauberer. http://stackoverflow.com/questions/929364/how-to-create-iphones-wobbling-icon-effect/930101#930101 – dandax

+1

Ich würde 90 ° verwenden == M_PI_2 – Ralphleon

+2

#define DEGREES_RADIANS (Winkel) ((Winkel)/180.0 * M_PI) –

0

Sie sollten versuchen, den Ankerpunkt der Ebene auf (0,1) zu setzen und dann die Ebene zu animieren.

+0

Sie Schicht ist, natürlich, die Schicht der Ansicht. – tadejsv

+0

Ich fand heraus, dass layer.anchorPoint und view.center die Täter waren, kurz nachdem ich meine Frage gepostet hatte. Danke für die schnelle Antwort! – dandax

-4

sollten Sie diesen Code versuchen:

-(void)doRotationView{ 
[UIView beginAnimations:@"flipping view" context:nil]; 
    [UIView setAnimationDuration:1];  
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft  
          forView:self cache:YES]; 
    if (flagFront == 1) { 
     flagFront =0; 
     [self.viewSecond setHidden:NO]; 
     [self.viewFirst setHidden:YES]; 
    } 
    else{ 
     flagFront =1; 
     [self.viewSecond setHidden:YES]; 
     [self.viewFirst setHidden:NO];   
    } 
    [UIView commitAnimations]; 

}