UIModalPresentationStyle和UIModalTransitionStyle效果显示

UIModalPresentationStyle的样式解析
typedefNS_ENUM(NSInteger, UIModalPresentationStyle) {
      UIModalPresentationFullScreen =0,//由下到上,全屏覆盖
      UIModalPresentationPageSheet,//在portrait时是FullScreen,在landscape时和FormSheet模式一样。
      UIModalPresentationFormSheet,// 会将窗口缩小,使之居于屏幕中间。在portrait和landscape下都一样,但要注意landscape下如果软键盘出现,窗口位置会调整。
      UIModalPresentationCurrentContext,//这种模式下,presented VC的弹出方式和presenting VC的父VC的方式相同。
      UIModalPresentationCustom,//自定义视图展示风格,由一个自定义演示控制器和一个或多个自定义动画对象组成。符合UIViewControllerTransitioningDelegate协议。使用视图控制器的transitioningDelegate设定您的自定义转换。
      UIModalPresentationOverFullScreen,//如果视图没有被填满,底层视图可以透过
      UIModalPresentationOverCurrentContext,//视图全部被透过
      UIModalPresentationPopover,
      UIModalPresentationNone ,
};
UIModalTransitionStyle的动画效果展示
typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {
        UIModalTransitionStyleCoverVertical = 0,
        UIModalTransitionStyleFlipHorizontal __TVOS_PROHIBITED,
        UIModalTransitionStyleCrossDissolve,
        UIModalTransitionStylePartialCurl NS_ENUM_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED,
};
  • UIModalTransitionStyleCrossDissolve


    UIModalTransitionStyleCrossDissolve.gif

代码如下:

- (void)ruleActionTrigged {

    NWFTipAlertController *alertVc = [[NWFTipAlertController alloc] initWithNibName:@"NWFTipAlertController" bundle:nil];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:alertVc];
    nav.navigationBarHidden = YES;
    nav.modalPresentationStyle = UIModalPresentationOverCurrentContext;
    nav.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentViewController:nav animated:YES completion:nil];
}

 //NWFTipAlertController.m 文件

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.7];
    }
    return self;
}

此处的只能用UIModalPresentationOverCurrentContext,要不然没有透明背景的效果

  • UIModalTransitionStyleCoverVertical


    UIModalTransitionStyleCoverVertical.gif
  • UIModalTransitionStyleCrossDissolve


    UIModalTransitionStyleCrossDissolve.gif
  • UIModalTransitionStyleFlipHorizontal


    UIModalTransitionStyleFlipHorizontal.gif
  • UIModalTransitionStylePartialCurl


    UIModalTransitionStylePartialCurl.gif

参考文章:
UIModalPresentationStyle即viewcontroller的显示方式
[iOS]modalPresentationStyle和modalTransitionStyle
UIModalPresentationStyle和UIModalTransitionStyle 浅谈

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 近期更换的笔记本电脑后就着手配置自己的Linux工作平台,最终选择的发行版是Ubuntu16.04 LTS 。这一...
    LionelDong阅读 6,051评论 2 17
  • 昨夜一两点才睡的我,今天不到六点半我就起床了。 在当得知未曾谋面的朋友即将要"消失"一段日子的时候,感觉莫名的思念...
    7515b237f6ce阅读 220评论 0 0
  • 前晚睡前,实在没有精力和乐乐聊天了,她不高兴,我也语气有些重的说,我真的困了,ya,人家直接哭了,然后说我就一直怕...
    阳光洒洒阅读 149评论 1 1