Iphone頁面跳轉動畫的封裝

fmms 12年前發布 | 35K 次閱讀 iPhone iOS開發 移動開發

在項目中我希望頁面跳轉有不同的動畫效果,我是一個喜歡將公用代碼提交出來寫成工具類的人,這個當然也不會放過,好了,看代碼:

.h文件:

    #import <Foundation/Foundation.h>  
    #import <QuartzCore/QuartzCore.h>  

    @interface MyAnimationUtil : NSObject {  

    }  


    +(CATransition *)getAnimation:(NSInteger)mytag;  


    @end  
.m文件
    #import "MyAnimationUtil.h"  
    #include<stdlib.h>  

    @implementation MyAnimationUtil  


    //獲得動畫  
    +(CATransition *)getAnimation:(NSInteger)mytag{  

        CATransition *animation = [CATransition animation];  
        animation.delegate = self;  
        animation.duration = 0.7;  
        animation.timingFunction = UIViewAnimationCurveEaseInOut;  

        switch (mytag) {  
            case 1:  
                animation.type = kCATransitionFade;  
                break;  
            case 2:  
                animation.type = kCATransitionPush;  
                break;  
            case 3:  
                animation.type = kCATransitionReveal;  
                break;  
            case 4:  
                animation.type = kCATransitionMoveIn;  
                break;  
            case 5:  
                animation.type = @"cube";  
                break;  
            case 6:  
                animation.type = @"suckEffect";  
                break;  
            case 7:  
                animation.type = @"oglFlip";  
                break;  
            case 8:  
                animation.type = @"rippleEffect";  
                break;  
            case 9:  
                animation.type = @"pageCurl";  
                break;  
            case 10:  
                animation.type = @"pageUnCurl";  
                break;  
            case 11:  
                animation.type = @"cameraIrisHollowOpen";  
                break;  
            case 12:  
                animation.type = @"cameraIrisHollowClose";  
                break;  
            default:  
                break;  
        }  


        int i = (int)rand()%4;  
        switch (i) {  

            case 0:  
                animation.subtype = kCATransitionFromLeft;  
                break;  
            case 1:  
                animation.subtype = kCATransitionFromBottom;  
                break;  
            case 2:  
                animation.subtype = kCATransitionFromRight;  
                break;  
            case 3:  
                animation.subtype = kCATransitionFromTop;  
                break;  
            default:  
                break;  
        }  
        return animation;  
    }  



    @end  
調用如下:
    UserRegisterViewController *userregister = [[UserRegisterViewController alloc]initWithNibName:@"UserRegisterViewController" bundle:nil];  
       userregister.userregisterdelegate = self.rootdelegate;  
       [self.navigationController pushViewController:userregister animated:NO];  
       CATransition * animation =  [MyAnimationUtil getAnimation:6];  
       [self.navigationController.view.layer addAnimation:animation forKey:nil];  
       [userregister release];  

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!