ios 模态视图

来源:互联网 发布:淘宝海关拍卖车可靠吗 编辑:程序博客网 时间:2024/05/16 11:06

模态界面

    在使用一般的导航控制器时,用户会逐次深入每一个视图,偶尔还会停下了返回前一个视图看看。如果用户要浏览的数据与树状的视图结构相匹配,那么这种办法就比较合适。此外,我们还可以用模态的方式来显示视图控制器。

    如果给视图控制器发送presentViewController:animated:completion:消息,那么该消息里所指定的那个视图控制器就会出现在屏幕上,并取得应用程序的控制权,直到我们用dismissViewControllerAnimated:completion:令其消失为止。通过这种做法,可以为应用程序创建一种不同于alert view的专用对话框。

    一般情况下,我们会用模态控制器来提示用户选择某种数据,比如Contacts程序会提示用户选择联系人,Photos程序会提示用户选择照片等,另外还有用模态控制器执行一些短时间的任务,例如发送电子邮件或调整程序的配置选项等。如果要执行一种与当前视图控制器的通常职责不同的短期任务,那么可以考虑使用模态控制器。

    我们可以用下面几种方式切换到模态界面:

    1、Slide(滑入)——在原有视图上面滑入新的视图

    2、Flip(翻转)——令原有视图翻转到背面,以显示新的视图

    3、Fade(淡入)——令新的视图逐渐浮现在原有视图之上

    4、Curl(卷动)——主视图向上卷起,露出下面的新视图

    在传给presentViewController:animated:completion:方法的那个视图控制器上面设置modalTransitionStyle属性,即可指定切换方式。标准的切换方式是UIModalTransitionStyleCoverVertical,也就是把模态视图从屏幕底部向上滑入到现有的视图控制器上方。等它要消失的时候,会向下滑出屏幕。

    UIModalTransitionStyleFlipHorizontal会从右向左翻转当前的视图,使得用户可以看到它背后的模态视图。等模态视图要消失的时候,又会从左向右翻转回去。

    UIModalTransitionStyleCrossDissolve会令新视图以淡入的形式出现在原有视图上方。等到消失的时候,它会逐渐淡出,以便露出原来的视图。

    UIModalTransitionStylePartialCurl会把现有的内容向上卷起来,并露出主视图控制器下方的模态设置界面。

    在iPhone和iPod touch上面,模态视图控制器总会占满整个屏幕。iPad则提供了更为细致的展示方式。iPad提供了五种展示风格,我们可以通过modalPresentationStyle属性来设置:

    1、Full screen(全屏)——这是iPhone默认的全屏展示风格,它会令新的模态视图占满整个屏幕,并覆盖在原有内容之上。如果modalTransitionStyle设为UIModalTransitionStylePartialCurl,那么modalPresentationStyle只能选择UIModalPresentationFullScreen,如果选了其他展示风格,那么程序会因为运行时异常而崩溃。

    2、Page sheet (页面)——如果以页面风格来展示,那么模态视图会按照竖屏状态下的宽高比来显示,所以,在设备处于竖屏状态时,模态视图控制器会填满整个屏幕,而当设备处于横屏状态时,则会覆盖部分屏幕,就好比一张竖着的纸放到横着的屏幕里一样。

    3、Form sheet(表单)——如果以表单风格来展示,那么模态视图只会覆盖屏幕中间的一小部分区域,这样的话,用户在操作模态视图中 控件时,还能尽量看到程序主视图里的内容。

    4、Current context(当前上下文)——UIModalPresentationCurrentContext会把父视图控制器的modalPresentationStyle用作当前视图的展示风格。

    5、Custom(自定义)——用于管理这种自定义的展示风格。

    取自iOS核心开发手册

0 0
原创粉丝点击