2012-10-03 195 views
1

我需要呈现,然后解除UITableView模态。它应该从顶部到按钮动画。但它不应该覆盖整个屏幕,它会从导航栏下方滑入并在到达TabBar之前停止。隐藏动画模态UIView?

所以我不能使用它的视图控制器presentViewController:animated:completion:。 我需要将它作为视图层次结构的一部分来操作。问题是,这个表视图在不可见的情况下应该放在哪里。我将在哪里制作动画?

回答

1

你可以把UITableView放入一个UIView并使用animateWithDuration。例如(使用一些由维度):

[subMenuView setFrame:CGRectMake(5,-400, 310, 400)]; 

[UIView animateWithDuration:0.8f 
         delay:0.0f 
        options:UIViewAnimationOptionTransitionCurlDown 
       animations:^{ 
        [subMenuView setFrame:CGRectMake(5,0,310,400)]; 
       } 
       completion:^ (BOOL finished) 
       { 
        if (finished) 
        { 
         //animation has finished, you can do something here, even another nested animation 
        } 
       }]; 

如果你想将其推回涨,做相反的事情......

+0

的UITableView从UIView的继承,所以我猜想,它可以在动画它自己的。 Ceteris paribus不需要将其嵌入到其他视图中。 我的担心更多的是将它隐藏在一些负面因素中。我觉得应该有一个更好的方法: -/ –

+0

你是正确的,你不需要UIView,正在考虑更多的组织目的,但作为一个负面的维度,这是典型的方式。你总是可以把它带到消极的层面,然后直接隐藏它。我不知道一个更好的隐藏除了a之外的东西的方法。 setHidden b。负面的维度 – boostedz06