呈现一个视图控制器,它是屏幕大小的一半

Dar*_*lay 6 iphone xcode ios

我正在尝试使用只有一半高度的视图控制器

[self presentModalViewController:menu animated:YES];
Run Code Online (Sandbox Code Playgroud)

问题是当它出现时,视图控制器结束与屏幕相同的大小.我也尝试将"菜单"设置为屏幕的全尺寸,并将视图的透明度更改为白色,但这也不起作用.

Dan*_*son 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"];
Run Code Online (Sandbox Code Playgroud)


Luc*_*uke 5

在iPhone和iPod touch设备上,modalViewController的视图始终以全屏显示.在iPad上,演示文稿取决于modalPresentationStyle属性中的值.

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

如果您只想覆盖屏幕的某些部分,您可以制作一个动画,将UIView容器和您要显示的任何内容滑动到屏幕上的某个位置.

我建议你阅读这篇文章:导航控制器上的透明模态视图

"我试图让视图背景变白"

那肯定无法工作,你可以写,[UIColor clearColor]但是当动画完成时,模态的视图控制器的视图将从屏幕上消失.因此,如果你将背景设为白色,你可能最终会看到窗口背景,这是白色的,而不是你想要的.