的iOS - 尝试在

问题描述:

褪色视图控制器在衰落中从黑色视图控制器,我做内viewDidLoad以下:的iOS - 尝试在

  • 与黑色背景创建UIView;
  • 给予UIView的α值为1.0f;
  • UIView作为[self view]的子视图添加;
  • 通过animateWithDuration将黑色UIView褪色,方法是将其alpha值更改为0.0f;和
  • [[self view] subviews]

去除黑UIView往往不是,这个工作按计划进行。然而,有时候,我会在绘制黑色UIView之前看到最初隐藏的视图控制器。

有没有办法避免这种情况?有没有更好的方法来放置此代码比viewDidLoad

非常感谢

+1

为什么不只是设置'self.view.alpha'? – CodaFi 2012-03-26 05:06:16

是,添加的方法的loadView视图和做viewDidLoad中或viewDidAppear实际的动画。或者像上面的评论者所说的那样,只是使用视图alpha。

我会创造我想要隐藏在UIViewControllerUIView的笔尖文件,然后链接到通过一个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]; 
      }]; 
}