我希望视图在通过
添加到堆栈时淡入 [self.view addSubview:someSecondaryViewController.view];
如何设置此调用的动画,以便视图淡入(和退出)?
答案 0 :(得分:29)
在制作动画之前将alpha设置为零,然后将alpha动画设为1。
[fadingView setAlpha:0.0];
[containerView addSubview:fadingView];
[UIView beginAnimations:nil context:nil];
[fadingView setAlpha:1.0];
[UIView commitAnimations];
在删除视图之前,只需将alpha动画设置为零。
BTW,视图层次结构更像是树而不是堆栈。编辑:
如果在淡出视图后动画结束后没有其他清理,请使用:
[UIView setAnimationDelegate:fadingView];
[UIView setAnimationDidStopSelector:@selector(removeFromSuperview)];
如果您已经设置了didStopSelector,那么请在那里调用removeFromSuperview。
答案 1 :(得分:21)
完成淡出动画后,您还可以使用块从超级视图中删除视图:
[UIView animateWithDuration:0.2
animations:^{viewOut.alpha = 0.0;}
completion:^(BOOL finished){[viewOut removeFromSuperview];}];
答案 2 :(得分:1)
在斯威夫特......
UIView.animateWithDuration(0.2, animations: { self.someSecondaryViewController.view.alpha = 0.0 }) { (done:Bool) in
self.someSecondaryViewController.view.removeFromSuperview()
}
link: function(scope, elem, attrs){
if(scope.decorate || attrs.decorate != null){
elem.find('INPUT').wrap('<div class="decorate-class"></div>')
}
}