(一〇七)iPad开发之modal的切换方式与展示方式

在iPad上modal有四种切换方式,分别是竖直进入(由下到上,默认方式)、水平翻转、淡入淡出。

属性要设置在将要modal出来的控制器上:

    /*
     typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {
     UIModalTransitionStyleCoverVertical = 0,
     UIModalTransitionStyleFlipHorizontal,
     UIModalTransitionStyleCrossDissolve,
     UIModalTransitionStylePartialCurl NS_ENUM_AVAILABLE_IOS(3_2),
     };
     */
    
    // 注意iOS7翻页(UIModalTransitionStylePartialCurl)只能漏出下面控制器的一部分,注意翻页只能在控制器全屏显示时使用。
    vc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

除了进入方式,还有展示方式,常用的展示方式是FormSheet,这个方式不会全屏展示,而是在屏幕中央的小区域展示。PageSheet显示一个宽度固定为768点,高度随屏幕变化的页面。

    /*
    typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
        UIModalPresentationFullScreen = 0,
        UIModalPresentationPageSheet NS_ENUM_AVAILABLE_IOS(3_2),
        UIModalPresentationFormSheet NS_ENUM_AVAILABLE_IOS(3_2),
        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),
        UIModalPresentationNone NS_ENUM_AVAILABLE_IOS(7_0) = -1,
    };*/
    // PageSheet宽度固定为768,高度为当前屏幕高度
    // FormSheet在中央显示一小块,常用,注意和popover区分。
    vc.modalPresentationStyle = UIModalPresentationFormSheet;
modal的方式还是原来的方法, 并且dismiss时按照设定的方式退出。

    [self presentViewController:vc animated:YES completion:nil];

从控制器1触摸modal控制器2的完整代码如下:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    
    ViewController2 *vc = [[ViewController2 alloc] init];
    vc.view.backgroundColor = [UIColor redColor];
    
    /*
     typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {
     UIModalTransitionStyleCoverVertical = 0,
     UIModalTransitionStyleFlipHorizontal,
     UIModalTransitionStyleCrossDissolve,
     UIModalTransitionStylePartialCurl NS_ENUM_AVAILABLE_IOS(3_2),
     };
     */
    
    // 注意iOS7翻页(UIModalTransitionStylePartialCurl)只能漏出下面控制器的一部分,注意翻页只能在控制器全屏显示时使用。
    vc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    
    /*
    typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
        UIModalPresentationFullScreen = 0,
        UIModalPresentationPageSheet NS_ENUM_AVAILABLE_IOS(3_2),
        UIModalPresentationFormSheet NS_ENUM_AVAILABLE_IOS(3_2),
        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),
        UIModalPresentationNone NS_ENUM_AVAILABLE_IOS(7_0) = -1,
    };*/
    // PageSheet宽度固定为768,高度为当前屏幕高度
    // FormSheet在中央显示一小块,常用,注意和popover区分。
    vc.modalPresentationStyle = UIModalPresentationFormSheet;
    
    [self presentViewController:vc animated:YES completion:nil];
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值