iOS動畫開發之二——UIView動畫執行的另一種方式

來源:互聯網
上載者:User

標籤:

iOS動畫開發之二——UIView動畫執行的另一種方式

        上一篇部落格中介紹了UIView的一些常用動畫,通過block塊,我們可以很方便簡潔的建立齣動畫效果:http://my.oschina.net/u/2340880/blog/484457,這篇部落格再介紹一種更加傳統的執行UIView的動畫的方法。

        這種方式相比如block的方式,顯得要麻煩一些,apple官方也推薦我們使用帶block的建立動畫的方式,我們可以將編程重心更多的放在動畫邏輯的實現上。使用begin和commit方式主要分為三個步驟:

    一、設定動畫開始

[UIView beginAnimations:@"test" context:nil];

這個函數中的兩個參數,第一個用於設定一個動畫的標識id,通常第二個參數寫為nil。

    二、動畫執行的參數設定

+ (void)setAnimationDelegate:(id)delegate; 

    設定這個動畫的代理,用於執行動畫開始或者結束後的動作

+ (void)setAnimationWillStartSelector:(SEL)selector; 

    設定動畫開始時執行的回調

+ (void)setAnimationDidStopSelector:(SEL)selector;

    設定動畫結束後執行的回調

+ (void)setAnimationDuration:(NSTimeInterval)duration;

    設定動畫執行的時間

+ (void)setAnimationDelay:(NSTimeInterval)delay; 

    設定延時執行的延時

+ (void)setAnimationStartDate:(NSDate *)startDate; 

    給動畫設定一個啟示時間

+ (void)setAnimationCurve:(UIViewAnimationCurve)curve; 

    設定動畫播放的線性效果,UIViewAnimationCurve的枚舉如下:

typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {    UIViewAnimationCurveEaseInOut,         // 淡入淡出    UIViewAnimationCurveEaseIn,            // 淡入    UIViewAnimationCurveEaseOut,           // 淡出    UIViewAnimationCurveLinear            //線性}

+ (void)setAnimationRepeatCount:(float)repeatCount; 

    設定動畫迴圈播放次數

+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses;

    設定動畫逆向執行

    三、提交動畫

+ (void)commitAnimations;

    例如:

UIView * view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];    [self.view addSubview:view];    view.backgroundColor=[UIColor redColor];    [UIView beginAnimations:@"test" context:nil];    [UIView setAnimationDuration:3];    view.backgroundColor=[UIColor orangeColor];    [UIView commitAnimations];//執行commit後,動畫即開始執行


一點建議:這種建立UIView動畫的方式和上一篇部落格中的block方式效果相同,然而效率並不高,寫的代碼也會繁瑣冗長,在開發中,如果沒有特殊的相容要求,使用block的方式會更高效方便。   

iOS動畫開發之二——UIView動畫執行的另一種方式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.