18

Voglio aggiungere una sottoview con animazione. Sto usando Aggiungi Sub vista in modo che non sta mostrando alcun animazione in modo che voglio mostrare qualsiasi animazione quando sto facendo questo ... Sto usando il codice qui di seguito: -mostra animazione quando addsubview

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

Può uno suggerire come faccio questo ?

risposta

38

Ecco il codice .. Provalo.

PS: sostituire myView con il nome della vista che si desidera sostituire.

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

qui è per i blocchi di animazione

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

E per rimuovere la visualizzazione secondaria? – djskinner

+1

Per rimuovere la sottoview, utilizzare lo stesso codice, ma sostituire [containerView addSubview: subview]; con [self.view removeFromSuperview]; – rmooney

0

Forse si può sottoclasse UIView e di override metodo willMove(toSuperview newSuperview: UIView?)

Ecco esempio:

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 
    } 
} 
Problemi correlati