以前對轉(zhuǎn)場的概念有點籠統(tǒng)荐虐,對 ViewController 層次的轉(zhuǎn)場和 View 的轉(zhuǎn)場(過渡)老是混淆,區(qū)分一下此處先對 View 轉(zhuǎn)場 用 CATransition 實現(xiàn)動畫绵脯,進(jìn)行一個筆記。
對 CATransition 進(jìn)行了解敦跌,它是CAAnimation的子類贴谎,用于做過渡動畫或者轉(zhuǎn)場動畫,能夠為層提供移出屏幕和移入屏幕的動畫效果旺芽。 其中最主要的就是 type 和 subType 這兩個屬性沪猴。
@property(copy) NSString *type; // 動畫的類型
@property(nullable, copy) NSString *subtype;// 動畫類型的方向
- 公共Type(官方的SDK其實只提供了四種過渡效果)
CA_EXTERN NSString * const kCATransitionFade;
CA_EXTERN NSString * const kCATransitionMoveIn;
CA_EXTERN NSString * const kCATransitionPush;
CA_EXTERN NSString * const kCATransitionReveal;
- 私有的Type (私有API提供了其他很多非常炫的過渡動畫),需要自己額外寫的
NSString *const kCATransitionCube = @"cube";
NSString *const kCATransitionSuckEffect = @"suckEffect";
NSString *const kCATransitionOglFlip = @"oglFlip";
NSString *const kCATransitionRippleEffect = @"rippleEffect";
NSString *const kCATransitionPageCurl = @"pageCurl";
NSString *const kCATransitionPageUnCurl = @"pageUnCurl";
NSString *const kCATransitionCameraIrisHollowOpen = @"cameraIrisHollowOpen";
NSString *const kCATransitionCameraIrisHollowClose = @"cameraIrisHollowClose";
- SubType: 動畫類型的方向
CA_EXTERN NSString * const kCATransitionFromRight;
CA_EXTERN NSString * const kCATransitionFromLeft;
CA_EXTERN NSString * const kCATransitionFromTop;
CA_EXTERN NSString * const kCATransitionFromBottom;
為了加深印象采章,對 Type 的類型一一進(jìn)行嘗試, 只是將 type 的方式替換而已运嗜。
CATransition *animation = [CATransition animation];
animation.type = kCATransitionPush;//設(shè)置動畫的類型
animation.subtype = kCATransitionFromRight; //設(shè)置動畫的方向
animation.duration = 1.0f;
[testView.layer addAnimation:animation forKey:@"pushAnimation"];
樣式
轉(zhuǎn)場動效
-
kCATransitionFade
kCATransitionFade.gif -
kCATransitionMoveIn
kCATransitionMoveIn.gif -
kCATransitionPush
kCATransitionPush.gif -
kCATransitionReveal
kCATransitionReveal.gif
[圖片上傳中...(kCATransitionSuckEffect.gif-9e0810-1651137269522-0)]
-
kCATransitionCube
kCATransitionCube.gif -
kCATransitionSuckEffect
kCATransitionSuckEffect.gif -
kCATransitionOglFlip
kCATransitionOglFlip.gif -
kCATransitionRippleEffect
kCATransitionRippleEffect.gif -
kCATransitionPageCurl
kCATransitionPageCurl.gif -
kCATransitionPageUnCurl
kCATransitionPageUnCurl.gif -
kCATransitionCameraIrisHollowOpen
kCATransitionCameraIrisHollowOpen.gif -
kCATransitionCameraIrisHollowClose
kCATransitionCameraIrisHollowClose.gif