美文网首页
模态出一个半透明的控制器

模态出一个半透明的控制器

作者: 蒋昉霖 | 来源:发表于2016-04-05 13:23 被阅读2950次

发现一个NB的东西,原来实现半透明效果就是添加一个半透明的View,但是如何才能模态出一个控制器呢,这种需求还是很常见的吧...
老方法一般都是创建一个自己的Window,然后添加新的控制器在Window上,设置window颜色,控制器颜色为clearColor,还是挺麻烦的,今儿扒扒捡捡,找到一个属性可以达到这种效果

modalPresentationStyle

typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
        UIModalPresentationFullScreen = 0,
        UIModalPresentationPageSheet NS_ENUM_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED,
        UIModalPresentationFormSheet NS_ENUM_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED,
        UIModalPresentationCurrentContext NS_ENUM_AVAILABLE_IOS(3_2),
        UIModalPresentationCustom NS_ENUM_AVAILABLE_IOS(7_0),
        UIModalPresentationOverFullScreen NS_ENUM_AVAILABLE_IOS(8_0),
        UIModalPresentationOverCurrentContext NS_ENUM_AVAILABLE_IOS(8_0),
        UIModalPresentationPopover NS_ENUM_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED,
        UIModalPresentationNone NS_ENUM_AVAILABLE_IOS(7_0) = -1,         
};

上面显示的一样,在原来只提供了4个属性,后来又添加了之后的这些

UIModalPresentationFullScreen这个是默认的,充满全屏
UIModalPresentationPageSheet这个是像sheet的效果,但是是满屏的,如果横屏的话才会出效果,就是一个竖屏的大小周边都是不能点击的灰色
UIModalPresentationFormSheet类似Sheet的效果
UIModalPresentationCurrentContext跟父类出现的样式一样
UIModalPresentationCustom自定义样式

好了,说一下怎么创建一个透明的控制器覆盖在老控制器上面

如果A present B设置 A.definesPresentationContext = YES; B.modalPresentationStyle = UIModalPresentationOverCurrentContext; B.view 是半透明的,然后让A 把B present 出来,就是半透明的

相关文章

网友评论

      本文标题:模态出一个半透明的控制器

      本文链接:https://www.haomeiwen.com/subject/tdjplttx.html