Swift 實現Menu擴散轉場動畫

今天我們要來實現上面這一個簡單的轉場動畫,非常的容易實現,剛開始接觸轉場動畫的同學可以拿來練手一下。

這一篇文章將不會很仔細地說明轉場動畫的邏輯,所以如果還不了解如何自定義轉場動畫或者它的原理,
請跳轉至:Swift 自订义非交互转场动画(Custom Transition ViewController)

準備動作

我們通過實現UINavigationControllerDelegate來自定義Navigation的轉場方法,並且告訴Transition我們進行的是push還是pop,
並且告知是哪一個按鈕被點了(selectedView)

創建SKDiffusionTransition.swift來實現轉場動畫協議的方法

在animateTransition中準備好fromView, toView, containerView

實現Push展開動畫

當使用者點下黃色按鈕時,我們將toView從按鈕的位置展開至全畫面。

實現Pop收縮動畫

將充滿畫面的圖,縮小到之前所點的按鈕位置。

這裡是通過遮罩層(Mask)來做的,不過不太清楚的是,為什麼打算從SuperView移出maskView的時候會Crash,需要再研究下引用關係。

如果在自定義轉場動畫的時候發現畫面卡住不動,看看是不是忘記使用下面的方法通知系統完成動畫了,

或者是忘記將哪一個畫面從containerView中移除了。


推薦和參考

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *