2011-02-16 52 views
0

我试图解雇一个UIView,我之前已经使用相同的动画块添加了淡入淡出alpha 0 -> alpha 100[self.view addSubview:newInitiateWindow.view];当创建窗口时,动画块正确执行,但当它被解散时,它只停留了0.75秒,然后消失而没有动画。即使我删除removeFromSuperview并释放调用,也不会将淡入淡出设置为透明。UIView Animation Only一次

这里是应该生成动画的代码:

[UIView transitionWithView:newInitiateWindow.view 
    duration:0.75 
    options:UIViewAnimationOptionCurveEaseIn 
    animations:^{ 
     newInitiateWindow.view.alpha = 0; 
    } 
    completion:^(BOOL finished){ 
     if(finished){ 
      [newInitiateWindow.view removeFromSuperview]; 
      [newInitiateWindow release]; 
      newInitiateWindow=nil; 
     } 
    } 
]; 
+0

尝试UIViewAnimationOptionAllowAnimatedContent添加到您的选择一些间接的。 – picknick 2011-02-16 15:56:51

+0

我尝试过,结果相同。这很奇怪,因为这个完全相同的代码适用于淡入(除了更改alpha = 100),并且在我开始动画块之前添加子视图。 – wasabi 2011-02-16 19:02:04

+0

好的,这里有一些进一步的测试...即使使用最基本的块动画,我仍然无法使它工作:\t [UIView animateWithDuration:1.0动画:^ newInitiateWindow.view.alpha = 0.0; \t}]; – wasabi 2011-02-16 19:22:32

回答

1

你是否与100一样?它是全alpha版本的1.0,可能会导致一些问题。

这可能是与iOS和代码放置的复杂性,但很可能只是一些被输错,可能是与拼写错误

0

过渡都应该添加/删除在过渡列出的视图的子视图。他们不应该修改视图的属性。您需要改为+animateWithDuration:delay:options:animation:completion: