2012-10-03 194 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