Core Animation動(dòng)畫結(jié)束回調(diào) 以及動(dòng)畫不還原的方法

iOS的Core Animation動(dòng)畫網(wǎng)上一抓一大把宜狐,寫的都很好
比如這個(gè)(太詳細(xì)了蛀缝,我都懶得看完):
Core Animation編程指南 - 士夢 - 博客園
還有這個(gè)
iOS開發(fā)基礎(chǔ)知識:Core Animation(核心動(dòng)畫) - 簡書

最近有個(gè)需求冯乘,想要?jiǎng)赢嫿Y(jié)束后把視圖刪除掉,那么就需要在動(dòng)畫結(jié)束后判斷是否是當(dāng)前動(dòng)畫塔橡,以防誤刪。

Core Animation結(jié)束后霜第,layer會回到原來的狀態(tài)葛家。設(shè)置fillMode參數(shù)為不還原動(dòng)畫

animation.fillMode = @"forwards";

動(dòng)畫結(jié)束的回調(diào):

- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {
}

其實(shí)用過的同學(xué)都知道,在這個(gè)方法中使用anim是無法得到動(dòng)畫的庶诡,因?yàn)镃ore Animation動(dòng)畫默認(rèn)執(zhí)行完會刪除惦银。那么就要設(shè)置動(dòng)畫結(jié)束后不刪除:

animation.removedOnCompletion = NO;

現(xiàn)在就可以在stop回調(diào)中得到動(dòng)畫了。如果您已經(jīng)懂了末誓,下面就不用看了

完整的步驟

  1. 在SB中創(chuàng)建一個(gè)用于移動(dòng)的小view扯俱,和點(diǎn)擊開始動(dòng)畫的小按鈕。綁定按鈕點(diǎn)擊事件


    SB
  2. 在點(diǎn)擊事件中為小view創(chuàng)建動(dòng)畫
-(IBAction)animationAction:(UIButton *)sender {
    CABasicAnimation * animation = [CABasicAnimation animationWithKeyPath:@"position"];
    [animation setDuration:0.5];
    // 設(shè)置delegate
    animation.delegate = self;
    // 動(dòng)畫結(jié)束后不刪除動(dòng)畫喇澡,否則在回調(diào)中無法得到動(dòng)畫
    animation.removedOnCompletion = NO;
    // 設(shè)置動(dòng)畫不還原
    animation.fillMode = @"forwards";
    [animation setFromValue:[NSValue valueWithCGPoint:CGPointMake(_aView.center.x, 150)]];
    [animation setToValue:[NSValue valueWithCGPoint:CGPointMake(_aView.center.x, 350)]];
    [self.aView.layer addAnimation:animation forKey:@"anim"]; // key 用來標(biāo)識動(dòng)畫
}
  1. 動(dòng)畫結(jié)束回調(diào)迅栅,不刪除了,這里改變背景色
-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {
      if([self.aView.layer animationForKey:@"anim"] == anim) { // 根據(jù)上面的標(biāo)識的key來判斷動(dòng)畫
        _aView.backgroundColor = [UIColor blackColor];
    }
}

效果

效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晴玖,一起剝皮案震驚了整個(gè)濱河市读存,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呕屎,老刑警劉巖让簿,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秀睛,居然都是意外死亡尔当,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門蹂安,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椭迎,“玉大人,你說我怎么就攤上這事田盈⌒蠛牛” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵允瞧,是天一觀的道長简软。 經(jīng)常有香客問我蛮拔,道長,這世上最難降的妖魔是什么替饿? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任语泽,我火速辦了婚禮,結(jié)果婚禮上视卢,老公的妹妹穿的比我還像新娘踱卵。我一直安慰自己,他們只是感情好据过,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布惋砂。 她就那樣靜靜地躺著,像睡著了一般绳锅。 火紅的嫁衣襯著肌膚如雪西饵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天鳞芙,我揣著相機(jī)與錄音眷柔,去河邊找鬼。 笑死原朝,一個(gè)胖子當(dāng)著我的面吹牛驯嘱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喳坠,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼鞠评,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了壕鹉?” 一聲冷哼從身側(cè)響起剃幌,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晾浴,沒想到半個(gè)月后负乡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脊凰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年敬鬓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笙各。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖础芍,靈堂內(nèi)的尸體忽然破棺而出杈抢,到底是詐尸還是另有隱情,我是刑警寧澤仑性,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布惶楼,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏歼捐。R本人自食惡果不足惜何陆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望豹储。 院中可真熱鬧贷盲,春花似錦、人聲如沸剥扣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钠怯。三九已至佳魔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晦炊,已是汗流浹背鞠鲜。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留断国,地道東北人贤姆。 一個(gè)月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像并思,于是被迫代替她去往敵國和親庐氮。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容