W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
基于UIView
的block的動畫允許你在動畫結束的時候提供一個完成的動作。CATranscation
接口提供的+setCompletionBlock:
方法也有同樣的功能。我們來調(diào)整上個例子,在顏色變化結束之后執(zhí)行一些操作。我們來添加一個完成之后的block,用來在每次顏色變化結束之后切換到另一個旋轉90的動畫。代碼見清單7.3,運行結果見圖7.2。
清單7.3 在顏色動畫完成之后添加一個回調(diào)
- (IBAction)changeColor
{
//begin a new transaction
[CATransaction begin];
//set the animation duration to 1 second
[CATransaction setAnimationDuration:1.0];
//add the spin animation on completion
[CATransaction setCompletionBlock:^{
//rotate the layer 90 degrees
CGAffineTransform transform = self.colorLayer.affineTransform;
transform = CGAffineTransformRotate(transform, M_PI_2);
self.colorLayer.affineTransform = transform;
}];
//randomize the layer background color
CGFloat red = arc4random() / (CGFloat)INT_MAX;
CGFloat green = arc4random() / (CGFloat)INT_MAX;
CGFloat blue = arc4random() / (CGFloat)INT_MAX;
self.colorLayer.backgroundColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0].CGColor;
//commit the transaction
[CATransaction commit];
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: