一行代碼調(diào)用支持手勢(shì)返回的iOS自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà)

前言

在平時(shí)的開(kāi)發(fā)中,我們進(jìn)行界面跳轉(zhuǎn)時(shí)一般都是采用系統(tǒng)默認(rèn)的轉(zhuǎn)場(chǎng)動(dòng)畫(huà)(Push 和 Present),iOS7之后,蘋(píng)果開(kāi)放了相關(guān)API,讓我們可以自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà),讓APP更有活力肉渴。本文將介紹我的一個(gè)開(kāi)源項(xiàng)目一個(gè)自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà)庫(kù)WXSTransition的使用以及部分原理,通過(guò)這個(gè)庫(kù)带射,一行代碼便可以實(shí)現(xiàn)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)同规,簡(jiǎn)單易用,同時(shí)也支持多個(gè)屬性修改,能靈活擴(kuò)展券勺。

之前寫(xiě)了相關(guān)介紹的文章一行代碼實(shí)現(xiàn)自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà)--iOS自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà)集介紹第一個(gè)版本的WXSTransition绪钥,經(jīng)過(guò)一段時(shí)間的優(yōu)化更新,WXSTransition做了一些改變也添加了一些新的東西,如:支持手勢(shì)返回以及新動(dòng)畫(huà)效果

正文

1关炼、動(dòng)畫(huà)效果
2程腹、使用方法
3、手勢(shì)返回

1儒拂、動(dòng)畫(huà)效果

跟之前版本相比寸潦,添加了一些新動(dòng)畫(huà),下面是部分效果圖:

insideThenPush.gif
frgmentFromRight.gif
normalViewMove.gif
fragmentFromTop.gif

2社痛、使用方法

一行代碼就可以調(diào)用
Push:

  [self.navigationController wxs_pushViewController:[[SecondViewController alloc] init] animationType:WXSTransitionAnimationTypePageTransition];

Present:

[self wxs_presentViewController:[[PresentViewController alloc] init] animationType:WXSTransitionAnimationTypePageTransition  completion:nil];

其中WXSTransitionAnimationTypePageTransition是動(dòng)畫(huà)類型见转,可以通過(guò)更改這里選擇不同類型的動(dòng)畫(huà)。

如果想要修改動(dòng)畫(huà)時(shí)間等屬性可以通過(guò)以下方法進(jìn)行修改:

[self.navigationController wxs_pushViewController:vc makeTransition:^(WXSTransitionProperty *transition) {
                        transition.animationType =  WXSTransitionAnimationTypePointSpreadPresent;
                        transition.animationTime = 1;
                        transition.backGestureEnable = NO;
                        transition.startView = cell.contentView;
                    }];

相比較與之前的版本褥影,添加了startViewtargetView兩個(gè)屬性池户,讓使用方法更為統(tǒng)一咏雌。
所有可以更改的屬性在WXSTransitionProperty中可以看到凡怎。

/**
 *  轉(zhuǎn)場(chǎng)動(dòng)畫(huà)時(shí)間
 *  transitiion animation time
 */
@property (nonatomic,assign) NSTimeInterval animationTime;
/**
 *  轉(zhuǎn)場(chǎng)方式 :push,pop,present,dismiss
 *  transitiion type :push,pop,present,dismiss
 */
@property (nonatomic,assign) WXSTransitionType transitionType;
/**
 *  轉(zhuǎn)場(chǎng)動(dòng)畫(huà)類型 
 *  transitiion animation type
 */
@property (nonatomic,assign) WXSTransitionAnimationType animationType;

/**
 *  是否采用系統(tǒng)原生返回方式
 *  set YES to make back action of systerm
 */
@property (nonatomic,assign) BOOL isSysBackAnimation;

/**
 *  是否通過(guò)手勢(shì)返回
 *  set YES to enable gesture for back
 */
@property (nonatomic,assign) BOOL backGestureEnable;
/**
 *  返回上個(gè)界面的手勢(shì) 默認(rèn):右滑 :WXSGestureTypePanRight
 *  choose type of gesture for back , default : WXSGestureTypePanRight
 */
@property (nonatomic,assign) WXSGestureType backGestureType;
/**
 *  View move 等動(dòng)畫(huà)中指定的起始視圖
 *
 */
@property (nonatomic, strong) UIView     *startView;
/**
 *  View move 等動(dòng)畫(huà)中指定的結(jié)束視圖
 */
@property (nonatomic, strong) UIView     *targetView;

3、手勢(shì)返回

手勢(shì)返回是一個(gè)新加的比較重要的功能赊抖。效果圖如下:

gestureSpread.gif

現(xiàn)在支持左滑统倒、上滑、下滑氛雪、右滑四種手勢(shì)進(jìn)行返回房匆,可以通過(guò)backGestureType屬性修改。

原理:

(1)报亩、首先要通過(guò)一個(gè)實(shí)現(xiàn)UIViewControllerInteractiveTransitioning協(xié)議的類----WXSPercentDrivenInteractiveTransition來(lái)控制手勢(shì)和動(dòng)畫(huà)的進(jìn)度浴鸿。
(2)、當(dāng)手離開(kāi)屏幕弦追,手勢(shì)結(jié)束時(shí)岳链,轉(zhuǎn)場(chǎng)動(dòng)畫(huà)需要繼續(xù),這個(gè)時(shí)候通過(guò)CADisplayLink來(lái)完成剩下的動(dòng)畫(huà)劲件。

具體的實(shí)現(xiàn)方法可以到源碼中WXSTransition看看掸哑,后續(xù)我也會(huì)抽時(shí)間寫(xiě)一篇詳細(xì)的介紹。

后語(yǔ)

這個(gè)版本除了以上變化外零远,還進(jìn)行了代碼結(jié)構(gòu)的修改優(yōu)化苗分,也解決了一些Bug,例如delegate沖突等牵辣,在這里感謝一下熱心提Bug的同學(xué)摔癣,以后還是希望有更多的技術(shù)交流,有興趣的同學(xué)可以到 WXSTransition Clone下來(lái)看看,覺(jué)得有所幫助的同學(xué)麻煩給個(gè)Star.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末择浊,一起剝皮案震驚了整個(gè)濱河市拐云,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌近她,老刑警劉巖叉瘩,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異粘捎,居然都是意外死亡薇缅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門攒磨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)泳桦,“玉大人,你說(shuō)我怎么就攤上這事娩缰【淖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵拼坎,是天一觀的道長(zhǎng)浮毯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)泰鸡,這世上最難降的妖魔是什么债蓝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮盛龄,結(jié)果婚禮上饰迹,老公的妹妹穿的比我還像新娘。我一直安慰自己余舶,他們只是感情好啊鸭,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著匿值,像睡著了一般赠制。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上千扔,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天植榕,我揣著相機(jī)與錄音纱烘,去河邊找鬼胀溺。 笑死介杆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的龙誊。 我是一名探鬼主播抚垃,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鹤树?” 一聲冷哼從身側(cè)響起铣焊,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎罕伯,沒(méi)想到半個(gè)月后曲伊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡追他,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年坟募,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邑狸。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡懈糯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出单雾,到底是詐尸還是另有隱情赚哗,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布硅堆,位于F島的核電站屿储,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏硬萍。R本人自食惡果不足惜扩所,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朴乖。 院中可真熱鬧,春花似錦助赞、人聲如沸买羞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)畜普。三九已至,卻和暖如春群叶,著一層夾襖步出監(jiān)牢的瞬間吃挑,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工街立, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舶衬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓赎离,卻偏偏與公主長(zhǎng)得像逛犹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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

  • 前言的前言 唐巧前輩在微信公眾號(hào)「iOSDevTips」以及其博客上推送了我的文章后虽画,我的 Github 各項(xiàng)指標(biāo)...
    VincentHK閱讀 5,379評(píng)論 3 44
  • 自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà) 這張圖是自己在翻譯官方文檔Customizing the Transition Animation...
    丨n水瓶座菜蟲(chóng)灬閱讀 1,172評(píng)論 0 3
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)舞蔽、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,121評(píng)論 4 61
  • 一座城市码撰,一組回憶渗柿,一人一路一座座,身處這個(gè)時(shí)代的幸運(yùn)脖岛。 2017.06 夜雨滴答做祝、滴答,打在黑暗里鸡岗。我的家鄉(xiāng)混槐,在...
    simoncos閱讀 336評(píng)論 0 1
  • 也許每個(gè)人的心里都有那么一個(gè)人,愛(ài)不了忘不掉轩性,但又不會(huì)影響自己的生活 part1 馬上就是零點(diǎn)了声登,過(guò)了零點(diǎn)就是我二...
    肖筱閱讀 4,152評(píng)論 100 110