我正在尝试使用
呈现只有一半高度的视图控制器[self presentModalViewController:menu animated:YES];
问题是当它出现时,视图控制器结束与屏幕相同的大小。 我还尝试将“菜单”设置为屏幕的整个大小,并将视图的透明度更改为白色,但这也不起作用。
答案 0 :(得分: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"];
答案 1 :(得分:5)
在iPhone和iPod touch设备上 modalViewController的视图总是如此 全屏显示。在iPad上, 演示取决于的价值 modalPresentationStyle属性。
如果您只想覆盖屏幕的某些部分,您可以制作一个动画,将UIView容器以及您要显示的内容滑动到屏幕上的某个位置。
我建议你阅读这篇文章:Transparent Modal View on Navigation Controller
“我试图制作视图背景 白“
那肯定不起作用,你可以编写[UIColor clearColor]
但是,当动画完成时,模态的视图控制器视图将从屏幕上消失。因此,如果你将背景设为白色,你可能最终会看到窗户背景,这是白色的,而不是你想要的。
答案 2 :(得分:0)
你真的不想尝试使用UIViewController来做这件事。将UIView添加到当前控制器的视图中,如果需要管理其行为,则为该视图提供自己的非UIViewController控制器对象。
我介绍了一些有关您尝试做什么的详细信息超出了UIViewController提供的合同:http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/