一行程式碼實現自定義轉場動畫--iOS自定義轉場動畫集

王小樹發表於2017-09-29

###前言

這段時間寫了一個自定義轉場動畫集,只需要一行程式碼就可以實現各種各樣的自定義轉場動畫。這是原始碼地址
WXSTransition
大家可以去下載來看看。

###介紹
transition animation asset
一個介面轉場動畫集。

在平時開發中,有時候需要一些轉場動畫給介面調整增添一些活力,而實現這些動畫相對比較繁瑣。
為了讓實現轉場更簡單,我寫了這個介面轉場動畫集。
調整介面時,只要一行程式碼就可以實現這裡面的動畫。
包括系統提供的動畫在內,目前有大概50種動畫。

###使用方法

#####1、首先匯入標頭檔案
#import "UINavigationController+WXSTransition.h"

#####2、一行程式碼就可以呼叫
Push:

 [self.navigationController wxs_pushViewController:(UIViewController *) animationType:(WXSTransitionAnimationType)];複製程式碼

Present:

[self wxs_presentViewController:(UIViewController *) animationType:(WXSTransitionAnimationType) completion:^{

}];複製程式碼

說明:
WXSTransitionAnimationType是轉場動畫型別,通過這個列舉選擇你想要的轉場動畫。

#####3、支援屬性修改

[self wxs_presentViewController:<#(UIViewController *)#> makeTransition:^(WXSTransitionManager *transition) {
transition.animationType =  WXSTransitionAnimationTypePointSpreadPresent;
transition.animationTime = 1;
}];複製程式碼

可以通過transition設定動畫時間、型別等屬性,目前可修改屬性不多,以後版本會增加

#####4、特殊呼叫

像point Spread 、ViewMoveToNextVC這樣的動畫,需要個起始view,只要將目標控制器的startView指向這個view就可以了,程式碼如下;

view_move_next.gif
view_move_next.gif

DetailViewController *vc = [[DetailViewController alloc] init];
CollectionViewCell *cell = (CollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
vc.startView = cell.imgView;
[self.navigationController wxs_pushViewController:vc makeTransition:^(WXSTransitionManager *transition) {
transition.animationType = WXSTransitionAnimationTypeViewMoveToNextVC;
transition.animationTime = 1;
}];複製程式碼

###動畫效果圖

#####自定義動畫

boom.gif
boom.gif

brick_close_H.gif
brick_close_H.gif

brick_open_V.gif
brick_open_V.gif

cover.gif
cover.gif

point_spread.gif
point_spread.gif

spread_from_right.gif
spread_from_right.gif

spread_from_top.gif
spread_from_top.gif

view_move_next.gif
view_move_next.gif

######系統動畫
iOS自身其實有許多不錯的轉場動畫,在這個轉場動畫集裡也進行了封裝,使用方法跟自定義轉場動畫一樣。
Push:

[self.navigationController wxs_pushViewController:<#(UIViewController *)#> animationType:<#(WXSTransitionAnimationType)#>];複製程式碼

Present:

[self wxs_presentViewController:<#(UIViewController *)#> animationType:<#(WXSTransitionAnimationType)#> completion:<#^(void)completion#>]複製程式碼

sys_oglFlip.gif
sys_oglFlip.gif

sys_pageCurl.gif
sys_pageCurl.gif

###後語

現在是第一個版本,原本準備支援互動手勢,但是一些動畫使用了互動手勢存在許多問題,所以這個版本去除了,準備在以後的版本中增加一些一下功能:
1、新增一些酷炫的轉場動畫
2、支援互動手勢
3、提供自定義動畫介面,讓使用者想實現自己的轉場動畫時,不用實現各種代理等繁瑣工作,專注於fromVC,和toVC的動畫邏輯。

最後再提供一下gittub 連結。
WXSTransition
歡迎大家來下載使用,記得給個star。如果有什麼想法,可以進行交流,讓我們一起進步。

相關文章