ios 添加動畫的方法

轉自文頂頂大神的博客:http://www.cnblogs.com/wendingding/p/3751519.htmlhtml

ios 開發UI中,常常會用添加動畫效果的需求,下面就總結一下,添加動畫的三種方式:ios

1、收尾式動畫數組

// beginAnimations表示此後的代碼要「參與到」動畫中

    [UIView beginAnimations:nil context:nil];
//設置動畫時長
    [UIView setAnimationDuration:2.0];
    
      self.headImageView.bounds = rect;

    // commitAnimations,將beginAnimation以後的全部動畫提交併生成動畫
    [UIView commitAnimations];


注:若是隻是修改控件的屬性,使用首尾式動畫仍是比較方便的,可是若是須要在完成後作後續處理,就不那麼方便了,這是應該考慮用block代碼塊。性能

2、block代碼塊動畫動畫

 //簡單的動畫效果
    [UIView animateWithDuration:2.0 animations:^{
        showlab.alpha=0;
    } completion:^(BOOL finished) {
        [showlab removeFromSuperview];
    }];

注:一、在實際的開發中更經常使用的是block代碼塊來處理動畫操做ui

      二、快動畫相對來講比較靈活,尤其重要的是可以將動畫相關的代碼編寫在一塊兒,便於代碼的閱讀和理解。spa

3、序列幀動畫(以一個簡單的TOM貓動畫示例)code

導入準備好的素材,對uiimageView和button按鈕進行鏈接orm

代碼示例:htm

- (IBAction)eat {
    
    NSMutableArray  *arrayM=[NSMutableArray array];
    for (int i=0; i<40; i++) {
        [arrayM addObject:[UIImage imageNamed:[NSString stringWithFormat:@"eat_%02d.jpg",i]]];
    }
    //設置動畫數組
    [self.tom setAnimationImages:arrayM];
    //設置動畫播放次數
    [self.tom setAnimationRepeatCount:1];
    //設置動畫播放時間
    [self.tom setAnimationDuration:40*0.075];
    //開始動畫
    [self.tom startAnimating];
}

點擊按鈕,便可執行動畫

 

4、補充知識

一、Imagees。xcassets中的素材

 (1)之支持png格式的圖片

 (2)圖片只支持[UIImage imageNamed]的方式實例化,可是不能從button中來加載

 (3)在編譯時,Images。xcassets中的全部文件會被打包爲Assets.car的文件

二、UIImageView的序列幀動畫(須要考慮程序性能,釋放數據)

   

// 0. 是否正在動畫

[self.tom isAnimating];

// 1. 設置圖片的數組

[self.tom setAnimationImages:arrayM];

// 2. 設置動畫時長,默認每秒播放30張圖片

[self.tom setAnimationDuration:arrayM.count * 0.075];

// 3. 設置動畫重複次數,默認爲0,無限循環

[self.tom setAnimationRepeatCount:1];

// 4. 開始動畫

[self.tom startAnimating];

// 5. 動畫播放完成後,清空動畫數組

[self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration];

 

三、UIImage ImageNamed

   (1)在圖片使用完成後,不會直接被釋放掉,具體釋放時間由系統決定,適用於圖片小、經常使用的圖像處理

   (2)若是要快速釋放圖片,可使用[UIImage imageWithContentsOfFile:path]實例化圖像

四、方法重構策略

   (1)將具備共性的代碼複製到一個新的方法

   (2)根據不一樣的調用狀況,增長方法的參數

注:在寫程序是不要着急重構,有時候吧代碼先寫出來,更容易看清楚如何重構纔會更好

5. Bundle(包)中的圖片素材

往項目中拖拽素材時,一般選擇

(1) Destination: 勾選

(2) Folders:

    1)選擇第一項:黃色文件夾

        注意點:Xcode中分文件夾,Bundle中全部所在都在同一個文件夾下,所以,不能出現文件重名的狀況

        特色:

       a.能夠直接使用[NSBundle mainBundle]做爲資源路徑,效率高!

       b.可使用[UIImage imageNamed:]加載圖像

    2)選擇第二項:藍色文件夾

        注意點:Xcode中分文件夾,Bundle中一樣分文件夾,所以,能夠出現文件重名的狀況

        特色:

        a.須要在[NSBundle mainBundle]的基礎上拼接實際的路徑,效率較差

        b.不能使用[UIImage imageNamed:]加載圖

相關文章
相關標籤/搜索