2016-10-20 3 views
0

Wie kann ich den Hintergrund für meine gesamte Anwendung gleich machen. Anstatt zu einem anderen ViewController mit einigen Animationen (Push, Pop, Rollover etc.) zu gehen. Ich möchte nur die Vordergrundansicht mit einigen Animationen ändern. Noch nächste Ansicht sollte in einem anderen ViewControllerSo verschieben Sie zwei UIViews. Den Hintergrund unverändert lassen

Zum Beispiel die zwei farbigen Bildschirme UIViews sein. Beim Klicken auf eine Schaltfläche in der ersten Ansicht möchte ich view1 slide view2 verschieben.

image

Anyway the background need to remain unchanged Note: With different view controllers

+0

Mögliche Duplikat animieren [UINavigationController - Halten Hintergrundbild über alle Ansichten hinweg] (http://stackoverflow.com/questions/13095968/uinavigationcontroller-keep-background-image-über-alle-views – Roy

Antwort

0

diesen Code Versuchen:

- (IBAction)btnExit:(id)sender { 
    [self setFrame:CGRectMake(-self.frame.size.width 
           ,200 
           ,self.frame.size.width 
           , self.frame.size.height 
           )]; 

    CATransition *animation = [CATransition animation]; 
    [animation setType:kCATransitionPush]; 
    [animation setSubtype:kCATransitionFromRight]; 
    [animation setDuration:.50]; 
    [animation setDelegate:self]; 
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
    CALayer *layer = [self layer]; 
    [layer addAnimation:animation forKey:nil]; 
} 

- (IBAction)btnEnter:(id)sender { 
    [self setFrame:CGRectMake(10 
           ,200 
           ,self.frame.size.width 
           , self.frame.size.height 
           )]; 

    CATransition *animation = [CATransition animation]; 
    [animation setType:kCATransitionPush]; 
    [animation setSubtype:kCATransitionFromLeft]; 
    [animation setDuration:.50]; 
    [animation setDelegate:self]; 
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
    CALayer *layer = [self layer]; 
    [layer addAnimation:animation forKey:nil]; 

} 

Mit diesem einfachen Code, den ich bewegen (mit btnEnter) myView innerhalb des Bildschirms (at beginnen aus dem Bildschirm ist) mit eine Animation und (btnExit) mit einer anderen Animation ausziehen.

Sie können viele Animationen verwenden, ich wählte eine.

Denken Sie daran, CAAnimationDelegate bei Ihrer Klassendefinition hinzuzufügen.

Der Hintergrund ist immer gleich. (UIViewController Ansicht)

0

Sie ändern Dauer 2

[UIView animateWithDuration:1 animations:^{ 
      [view1 setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 


     }]; 

    [UIView animateWithDuration:1 animations:^{ 
      [view2 setFrame:CGRectMake(view1.frame.size.width,0, self.view.frame.size.width, self.view.frame.size.height)]; 


     }]; 

oder

[UIView animateWithDuration:1 animations:^{ 
       [view2 setFrame:CGRectMake(view1.frame.size.width,0, self.view.frame.size.width, self.view.frame.size.height)]; 

     [view1 setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

      }]; 
Verwandte Themen