show animation when addsubview
-
01-10-2019 - |
Question
I want to add a subview with animation. I am using add sub view so it is not showing any animation so I want to show any animation when I am doing this... I am using below code :-
UIViewController *vControllerHome = [[viewTemp alloc] initWithNibName:@"viewTemp" bundle:nil];
vControllerHome.view.frame =CGRectMake(0, 0, 320, 414);
[self.view addSubview:vControllerHome.view];
self.selectedViewController = vControllerHome;
Can any one suggest how I do this?
Solution
Here's the code.. Just try it.
PS: Replace myView
with the name of the view you want to replace.
CATransition *applicationLoadViewIn =[CATransition animation];
[applicationLoadViewIn setDuration:duration];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myView layer]addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];
OTHER TIPS
here is for animation blocks
[UIView transitionWithView:containerView
duration:0.5
options:UIViewAnimationTransitionFlipFromRight //any animation
animations:^ { [containerView addSubview:subview]; }
completion:nil];
Maybe you can subclass the UIView and override method willMove(toSuperview newSuperview: UIView?)
Here is example:
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
}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow