2011-04-27 52 views
6

我想提出一個視圖控制器這就是隻使用出示一個視圖控制器是屏幕

[self presentModalViewController:menu animated:YES]; 

問題是,當它呈現高度的一半的一半大小,視圖控制器結束同大小作爲屏幕。 我也嘗試使'菜單'的屏幕的全尺寸,並將視圖的透明度更改爲白色,但這也不起作用。

回答

8

只需使用核心動畫或動畫過渡與一個UIView是屏幕尺寸的一半。您需要添加到主視圖的持有者視圖。

將半視圖放置在屏幕下方(halfView.y = 480或320,具體取決於方向)。

向上動畫。

事情是這樣的,也許:

// set up an animation for the transition between the views 
    CATransition *animation = [CATransition animation]; 
    [animation setDuration:0.5]; 
    [animation setType:kCATransitionPush]; 
    [animation setSubtype:kCATransitionFromBottom]; 
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 

    [holderView addAnimation:animation forKey:@"SwitchToView1"]; 
5

在iPhone和iPod touch設備上,modalViewController的 視圖始終是全屏顯示的 。在iPad上, 演示文稿取決於 中的值modalPresentationStyle屬性。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

如果你想只覆蓋屏幕的某些部分,你可以使滑動的UIView的容器,無論您想要顯示在屏幕上的位置的動畫。

我建議你閱讀這篇文章:Transparent Modal View on Navigation Controller

「我試圖使視圖背景 白」

這將definitley不工作,你可能已經但是寫[UIColor clearColor],動畫完成時,模態窗口覆蓋的視圖控制器視圖將從屏幕上消失。所以如果你把背景變成白色,你最終可能會看到窗戶背景,而不是你想要的。

0

你真的不想嘗試使用UIViewController來做到這一點。將UIView添加到當前控制器的視圖中,如果它需要管理其行爲,則爲該視圖提供它自己的非UIViewController控制器對象。

我介紹了一些細節上如何你正在嘗試做的是通過的UIViewController這裏提供的合同之外:http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/

相關問題