的iOS - 尝试在
问题描述:
褪色视图控制器在衰落中从黑色视图控制器,我做内viewDidLoad
以下:的iOS - 尝试在
- 与黑色背景创建
UIView
; - 给予
UIView
的α值为1.0f
; - 将
UIView
作为[self view]
的子视图添加; - 通过
animateWithDuration
将黑色UIView
褪色,方法是将其alpha值更改为0.0f
;和 - 从
[[self view] subviews]
去除黑UIView
往往不是,这个工作按计划进行。然而,有时候,我会在绘制黑色UIView
之前看到最初隐藏的视图控制器。
有没有办法避免这种情况?有没有更好的方法来放置此代码比viewDidLoad
?
非常感谢
答
是,添加的方法的loadView视图和做viewDidLoad中或viewDidAppear实际的动画。或者像上面的评论者所说的那样,只是使用视图alpha。
答
我会创造我想要隐藏在UIViewController
的UIView
的笔尖文件,然后链接到通过一个IBOutlet
@interface SomeViewController: UIViewController
{
IBOutlet UIView *blackView;
}
然后在UIViewController
的-(void) viewDidLoad;
方法,我会做以下
- (void)viewDidLoad
{
[super viewDidLoad];
// Fade the opacity of blackView over 1 second,
// then remove it from the view controller.
[UIView animateWithDuration:1
delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
blackView.layer.opacity = 0;
}
completion:^(BOOL finished) {
// This line prevents the flash
blackView.layer.opacity = 0;
[blackView removeFromSuperview];
}];
}
为什么不只是设置'self.view.alpha'? – CodaFi 2012-03-26 05:06:16