乾貨系列之實現City Guides的動畫效果(一)

發表於2016-04-03

點此下載原始碼下載:原始碼(會持續更新,歡迎star。保證炫酷,童叟無欺!)

dribbble的設計師的作品中瞭解到City Guides上非常優秀的動畫效果。感嘆設計師很棒的設計的同時,小編也在心裡默想這些動畫是怎麼實現的。於是從App Store上下載了APP,使用然後仔細研究後便有了此篇文章。

City Guides中幾乎所有的介面展示與互動方式都是有動畫效果的。小編也就分幾部分來實現動畫效果。

這一篇要實現的動畫效果如下:

第一個動畫效果:

第二個動畫效果:

本篇文章只講解實現思路,具體的可以參見原始碼。

動畫效果一

第一個動畫效果,實際上包括三個部分動畫效果。選中動畫效果動畫轉場和切換動畫效果。本篇文章中所有的動畫,使用POP和Core Animation實現。

選中動畫效果

此動畫實現相對簡單一些,中間部分是使用的UICollectionView,建立了四個cell。在可視的cell中實現被選中的cell放大,其餘可視的cell縮放的同時透明度減少。使用POP實現的方法如下:

此部分實現的效果圖:

動畫轉場

此部分的轉場過渡動畫效果,參考小編上篇文章講解的自定義轉場。裡面涉及到手勢互動,下一篇文章再做詳細講解。

切換效果動畫

實際上是點選最上面的兩個button後,對應的檢視動畫效果。

切換到SLIDES後,UICollectionView整個檢視向左移,移出當前螢幕。與此同時可視的UICollectionViewCell隨著變化,而且每個cell的變化有區別。區別是:移出的時候,第二個cell最後消失在視線裡(偏移量最小),第四個cell旋轉幅度較大(角度最大)。
實現的方式:


切換到GRID後,UICollectionView整個檢視向右移,漸入到當前螢幕。UICollectionViewCell變化與上面有些不一樣。第3個cell 和第4個cell最後完成動畫,其動畫變化較大。

以上兩個動畫完成的過程中,仔細觀察SLIDES下對應的檢視,UIScrollView有一些細微的變化。在Y方向上有一定的偏移量的變化。是根據UICollectionView移出的位置變化而改變。使用POPAnimationDelegate的方法,根據當前執行動畫決定在Y方向偏移量是逐步增加或減少。

具體效果參見下圖:

動畫效果二

此部分動畫是使用UIScrollView來實現,同樣可以使用UICollectionView來實現。此處是UICollectionView實現。本篇文章使用繼承UIScrollView的類來實現。只需要以下幾行程式碼即可。是根據UIScrollView的子檢視偏移量的變化實現。參考以下程式碼

其中CATransform3DPerspect實現方法和使用原理可以參考此篇文章iOS 3D UI—CALayer的transform擴充套件

後續實現內容,請持續關注小編。


點此下載原始碼下載:原始碼(會持續更新,歡迎star)

相關文章