美文网首页
iOS 视图180度翻转

iOS 视图180度翻转

作者: 不可雕的板蓝根 | 来源:发表于2018-07-31 10:30 被阅读0次
    + (void)transformViewController1:(UIViewController* )vc1 withViewController2:(UIViewController* )vc2{
        
        __weak typeof(UIViewController* ) weakSelf = vc1;
        [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    
            UIWindow *window = [UIApplication sharedApplication].keyWindow;
            window.backgroundColor = [UIColor whiteColor];
            window.layer.transform = CATransform3DMakeRotation(M_PI/2.0, 0, 1, 0);
        } completion:^(BOOL finished) {
            [weakSelf presentViewController:vc2 animated:NO completion:nil];
            
            [UIView animateWithDuration:0 animations:^{
                vc2.view.layer.transform = CATransform3DMakeRotation(3*M_PI/2, 0, 1, 0);// 先将页面翻转270度。此时是你看不见这个控制器的,设置了alpha
            } completion:^(BOOL finished) {
                vc2.view.alpha = 1;
                [UIView animateWithDuration:0.5 animations:^{
                    // 先将window 翻转270.
                    UIWindow *window = [UIApplication sharedApplication].keyWindow;
                    window.backgroundColor = [UIColor whiteColor];
                    window.layer.transform = CATransform3DRotate(window.layer.transform,M_PI*3/2.0, 0, 1, 0);
                    vc2.view.layer.transform = CATransform3DRotate(vc2.view.layer.transform, M_PI/2, 0, 1, 0);
                } completion:^(BOOL finished) {
                }];
            }];
        }];
    }
    
    + (void)transformViewController2:(UIViewController* )vc2 withViewController1:(UIViewController* )vc1{
        
        __weak typeof(UIViewController* ) weakSelf = vc2;
        [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
            
            weakSelf.view.layer.transform = CATransform3DMakeRotation(M_PI/2.0, 0, 1, 0);  // 当前view,这句代码可以不要。这是我的需求
            
            UIWindow *window = [UIApplication sharedApplication].keyWindow;
            window.backgroundColor = [UIColor whiteColor];
            window.layer.transform = CATransform3DMakeRotation(M_PI/2.0, 0, 1, 0);
        } completion:^(BOOL finished) {
            
            [weakSelf dismissViewControllerAnimated:NO completion:nil];
            
            [UIView animateWithDuration:0 animations:^{
                vc1.view.layer.transform = CATransform3DMakeRotation(3*M_PI/2, 0, 1, 0);// 先将页面翻转270度。此时是你看不见这个控制器的,设置了alpha
            } completion:^(BOOL finished) {
                vc1.view.alpha = 1;
                [UIView animateWithDuration:0.5 animations:^{
                    // 先将window 翻转270.
                    UIWindow *window = [UIApplication sharedApplication].keyWindow;
                    window.backgroundColor = [UIColor whiteColor];
                    window.layer.transform = CATransform3DRotate(window.layer.transform,M_PI*3/2.0, 0, 1, 0);
                    vc1.view.layer.transform = CATransform3DRotate(vc1.view.layer.transform, M_PI/2, 0, 1, 0);
                } completion:^(BOOL finished) {
                }];
            }];
        }];
    }
    

    相关文章

      网友评论

          本文标题:iOS 视图180度翻转

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