presentViewController弹出界面的大小设置

PresentViewController弹出的界面,有四种模式,分别是:

UIModalPresentationFullScreen代表弹出VC时,presented VC充满全屏,如果弹出VC的wantsFullScreenLayout设置为YES的,则会填充到状态栏下边,否则不会填充到状态栏之下。

UIModalPresentationPageSheet代表弹出是弹出VC时,presented VC的高度和当前屏幕高度相同,宽度和竖屏模式下屏幕宽度相同,剩余未覆盖区域将会变暗并阻止用户点击,这种弹出模式下,竖屏时跟UIModalPresentationFullScreen的效果一样,横屏时候两边则会留下变暗的区域。
UIModalPresentationFormSheet这种模式下,presented VC的高度和宽度均会小于屏幕尺寸,presented VC居中显示,四周留下变暗区域。
UIModalPresentationCurrentContext这种模式下,presented VC的弹出方式和presenting VC的父VC的方式相同。
这四种方式在iPad上面统统有效,但在iPhone和iPod touch上面系统始终以UIModalPresentationFullScreen模式显示presented VC。

当要自定义弹出框的大小时候:

    1. MyModalViewController *targetController = [[[MyModalViewController alloc] init] autorelease];  
    2. targetController.modalPresentationStyle = UIModalPresentationFormSheet;  
    3. targetController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;  //transition shouldn't matter  
    4. [self presentModalViewController:targetController animated:YES];  
    5. targetController.view.superview.frame = CGRectInset(targetController.view.supervi
这句代码,一定要在presentModalViewController 执行之后再调用,否则无效。

你可能感兴趣的:(IOS)