18

Chcę dodać podgląd z animacją. Używam dodać sub widok więc nie widać żadnych animacji, więc chcę pokazać animację kiedy to robię ... Używam poniżej kodu: -Wyświetl animację, gdy dodajeububview

UIViewController *vControllerHome = [[viewTemp alloc] initWithNibName:@"viewTemp" bundle:nil]; 
vControllerHome.view.frame =CGRectMake(0, 0, 320, 414); 
[self.view addSubview:vControllerHome.view]; 
self.selectedViewController = vControllerHome; 

Może ktoś sugerują, jak to zrobić ?

Odpowiedz

38

Oto kod. Po prostu spróbuj.

PS: Zastąp symbol myView nazwą widoku, który chcesz zastąpić.

CATransition *applicationLoadViewIn =[CATransition animation]; 
[applicationLoadViewIn setDuration:duration]; 
[applicationLoadViewIn setType:kCATransitionReveal]; 
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[[myView layer]addAnimation:applicationLoadViewIn forKey:kCATransitionReveal]; 
26

tutaj jest dla bloków animacji

[UIView transitionWithView:containerView 
        duration:0.5 
       options:UIViewAnimationTransitionFlipFromRight //any animation 
      animations:^ { [containerView addSubview:subview]; } 
      completion:nil]; 
+2

I usunąć podrzędny? – djskinner

+1

Aby usunąć podgląd, użyj tego samego kodu, ale zastąp [containerView addSubview: subview]; z [self.view removeFromSuperview]; – rmooney

0

Może podklasy UIView i zastąpić metodę willMove(toSuperview newSuperview: UIView?)

Oto przykład:

override public func willMove(toSuperview newSuperview: UIView?) { 
    super.willMove(toSuperview: newSuperview) 

    if let _ = newSuperview { 
     // This view will be added to some view 
     UIView.animate(withDuration: 0.2, delay: 0.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 30.0, options: .curveEaseInOut, animations: { 
      //... 
     }, completion: { (finish) in 

     }) 
    } else { 
     // This view will be removed 
    } 
} 
Powiązane problemy