實現兩個頁面的轉場動畫

appdelegete.m



#import "AppDelegate.h"app

#import "FirstViewController.h"ide

@interface AppDelegate ()動畫


@end url


@implementation AppDelegatespa



- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {.net

    // Override point for customization after application launch.3d

     _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];code

    

    [_window setBackgroundColor:[UIColor whiteColor]];orm

    //1.建立第一個視圖控制器的對象對象


    FirstViewController *first = [[FirstViewController alloc]init];

    

    //2.做爲window的根視圖控制器

    _window.rootViewController = first;

    

    

    

    

    [_window makeKeyAndVisible];



    return YES;

}


@end


FirstViewController.m

//

//  FirstViewController.m

//  05-模態視圖控制器的切換

//

//  Created by 千鋒 on 16/4/12.

//  Copyright (c) 2016 樊娟. All rights reserved.

//


#import "FirstViewController.h"

#import "SecondViewController.h"

#import "UIView+FJView.h"

@interface FirstViewController ()


@end


@implementation FirstViewController


#pragma mark -點擊按鈕實現跳轉


- (void)nextView:(UIButton *)btn{

    

//    //1.建立下一個界面的對象

    SecondViewController *second = [[SecondViewController alloc]init];

//    

//#pragma mark -模態化彈出一個界面

//    //2.模態化彈出一個界面

//    //參數1:須要彈出的那個視圖控制器對象

//    //參數2:是否有動畫

//    //參數3:彈出動畫結束後須要作的事情.寫在這個block

////    [self presentViewController:second

////        animated:NO completion:^{

////           

////            NSLog(@"下一個界面彈出後須要作的事情寫在這兒");

////            

////        }];

////    

//    

//#pragma mark -字符串轉場動畫

//    //3.切換動畫(轉場動畫) -- 專門用於界面之間切換的動畫效果

//    //a.建立一個轉場動畫的對象

//    

//    CATransition * transition = [CATransition animation];

//    

//    //b.設置動畫時間(單位是秒)

//    transition.duration = 1;

//    

//    //c.設置動畫效果

//    

//    //字符串

////         pageCurl            向上翻一頁

////         pageUnCurl          向下翻一頁

////         rippleEffect        滴水效果

////         suckEffect          收縮效果,如一塊布被抽走

////         cube                立方體效果

////         oglFlip             上下翻轉效果

////         cameraIrisHollowOpen  打開相機的效果

////         cameraIrisHollowClose 關閉相機的效果

//    

//#pragma mark -宏定義動畫效果

////    kCATransitionFade   交叉淡化過渡

////         kCATransitionMoveIn 新視圖移到舊視圖上面

////         kCATransitionPush   新視圖把舊視圖推出去

////         kCATransitionReveal 將舊視圖移開,顯示下面的新視圖

//    

//    [transition setType:@"pageCurl"];

//    

//    

//    //d.設置動畫方向(不是全部的動畫效果都有效)

//#pragma mark -設置動畫方向

////    kCATransitionFromRight

////        kCATransitionFromLeft(默認值)

////        kCATransitionFromTop

////        kCATransitionFromBottom

//    [transition setSubtype:@"fromLeft"];

//    

//    

//    //e.添加動畫效果

//    //轉場動畫只能添加到layer

//    [self.view.window.layer addAnimation:transition forKey:nil ];

//    

//    //在這兒後面的全部的視圖切換都有上面的動畫效果

//    //必須關閉切換視圖自帶的動畫效果

//    [self presentViewController:second animated:NO completion:nil];

    

    [self.view.window addTransitionAnimationWithDuration:0.1 animationType:(FJTransitionType) FJ_pageCurl direction:FJ_UP];

    

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

}



#pragma mark -生命週期相關的方法

//加載view的時候會調用

- (void)loadView{

    

    [super loadView];

    

    

    

    NSLog(@"%s",__func__);

    

    

}


//view已經加載成功

- (void)viewDidLoad {

    [super viewDidLoad];

    

    //設置當前這個界面的背景顏色

    self.view.backgroundColor = [UIColor lightGrayColor];

    

    //添加一個按鈕

    UIButton *button = [[UIButton alloc]initWithFrame:

                        CGRectMake(100, 100, 50, 50)];

    

    button.backgroundColor = [UIColor orangeColor];

    

    [self.view addSubview:button];

    

    //添加事件

    [button addTarget:self action:@selector(nextView:)

     forControlEvents:UIControlEventTouchUpInside];

    

    

    NSLog(@"%s",__func__);

}


//view將要顯示

- (void)viewWillAppear:(BOOL)animated{

    

    [super viewWillAppear:animated];

     NSLog(@"%s",__func__);

}


//view已經顯示

- (void)viewDidAppear:(BOOL)animated{


    [super viewDidAppear:animated];

     NSLog(@"%s",__func__);

}


//view將要消失

- (void)viewWillDisappear:(BOOL)animated{

    

    [super viewWillDisappear:animated];

     NSLog(@"%s",__func__);

    

}


//view已經消失

-(void)viewDidDisappear:(BOOL)animated{

    

    [super viewWillDisappear:animated];

     NSLog(@"%s",__func__);

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end



SecondViewController.m



#import "SecondViewController.h"

#import "FirstViewController.h"

#import "UIView+FJView.h"

@interface SecondViewController ()


@end


@implementation SecondViewController


#pragma mark -點擊按鈕回到第一個頁面

- (void)preView:(UIButton *)btn{


    //1.回到上一個界面

    //讓當前這個視圖控制器對象消失

    //參數1:是否動畫

    //參數2:動畫結束後的事情在這裏寫block

    //self能夠調用這個方法的前提是:self對象是經過present方式彈出的

    //當前調用dismiss方法的視圖控制器對象,調用完dismiss方法後會被銷燬;

    [self.view.window addTransitionAnimationWithDuration:0.3 animationType:

     FJ_rippleEffect direction:FJ_DOWN];

    [self dismissViewControllerAnimated:NO completion:^{

        

    }];

    

    

}



#pragma mark - 第二個頁面的生命週期方法


//加載view的時候會調用

- (void)loadView{

    

    [super loadView];

    

    

    

    NSLog(@"%s",__func__);

    

    

}


//view已經加載成功

- (void)viewDidLoad {

    [super viewDidLoad];

    

    //設置當前這個界面的背景顏色

    self.view.backgroundColor = [UIColor orangeColor];

    

    //添加一個按鈕

    UIButton *button = [[UIButton alloc]initWithFrame:

                        CGRectMake(100, 100, 50, 50)];

    

    button.backgroundColor = [UIColor blackColor];

    

    [self.view addSubview:button];

    

    //添加事件

    [button addTarget:self action:@selector(preView:)

     forControlEvents:UIControlEventTouchUpInside];

    

    

    NSLog(@"%s",__func__);

}


//view將要顯示

- (void)viewWillAppear:(BOOL)animated{

    

    [super viewWillAppear:animated];

    NSLog(@"%s",__func__);

}


//view已經顯示

- (void)viewDidAppear:(BOOL)animated{

    

    [super viewDidAppear:animated];

    NSLog(@"%s",__func__);

}


//view將要消失

- (void)viewWillDisappear:(BOOL)animated{

    

    [super viewWillDisappear:animated];

    NSLog(@"%s",__func__);

    

}


//view已經消失

-(void)viewDidDisappear:(BOOL)animated{

    

    [super viewWillDisappear:animated];

    NSLog(@"%s",__func__);

}




- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end

相關文章
相關標籤/搜索