【问题标题】:Close Animation will not run关闭动画不会运行
【发布时间】:2011-09-28 02:00:19
【问题描述】:

在我的 iPhone 应用程序中,主窗口上方出现了一个窗口。这是我的关闭按钮的代码;

-(IBAction)cancel{
[UIView beginAnimations:@"Animation" context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[self.view removeFromSuperview]; 
//[_window addSubview:view2];
[UIView commitAnimations];}

窗口正确关闭,但动画不会执行。我不明白为什么。

谢谢

【问题讨论】:

    标签: iphone ios xcode xcode4 ios4


    【解决方案1】:

    我认为这是因为您在动画期间 从父视图中删除了视图。动画不会发生,因为视图已经消失。您应该等到动画完成后才能移除以查看,您可以通过设置动画完成时调用的委托和选择器来做到这一点。

    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
    

    然后在

    -(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
    {
        [self.view removeFromSuperview];
    }
    

    【讨论】:

    • 这种工作。发生的事情是窗口动画,但窗口仍然存在。动画完成后,窗口被移除。所以想象一下;窗口卷曲起来,因为它与卷曲窗口“下方”的窗口完全相同。然后窗口消失。
    • 我猜你需要确保你要转换到的任何视图都在你要删除的视图后面。我很怀疑“self.view”是您要删除的视图。我想你可能想要两个视图,view1 和 view2。将 view1 放在 view2 的前面(可能在 view2 之后添加它作为子视图),然后在其上运行此动画并将其移除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2011-10-31
    • 2012-11-13
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    相关资源
    最近更新 更多