您的位置:首页 > 产品设计 > UI/UE

UIModalPresentationStyle和UIModalTransitionStyle

2015-06-24 09:40 555 查看
弹UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等。系统的模态视图主要是通过delegate来进行viewController之间的信息传递。

常见概念

1、presenting view controller and presented view controller

view controllerA 上模态显示view controllerB,A就相当于presenting view controller , B就相当于 presented
view controller。

Modal Presentation Styles(弹出风格)

  通过设置presenting VC的modalPresentationStyle属性,我们可以设置弹出View Controller时的风格,有以下四种风格,其定义如下:

typedef enum {
UIModalPresentationFullScreen = 0,
UIModalPresentationPageSheet, // ipad有效
UIModalPresentationFormSheet, // ipad有效
UIModalPresentationCurrentContext,	// ipad有效
} UIModalPresentationStyle;


  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。

Modal Transition Style动画效果

  通过设置设置presenting VC的modalTransitionStyle属性,我们可以设置弹出presented VC时场景切换动画的风格,其定义如下:

typedef enum {
UIModalTransitionStyleCoverVertical = 0,//底部滑入
UIModalTransitionStyleFlipHorizontal, //水平翻转
UIModalTransitionStyleCrossDissolve, //教材溶解
UIModalTransitionStylePartialCurl, //翻页
} UIModalTransitionStyle;


  我们可以看到有从底部滑入,水平翻转进入,交叉溶解以及翻页这四种风格可选。这四种风格在不受设备的限制,即不管是iPhone还是iPad都会根据我们指定的风格显示转场效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iphone ipad ipod touch