StackView Animation


 

手機豎直、水平時的動畫效果。

效果:

  • 當收起其中一張圖片的時候,其他圖片平均的去補滿空餘的位置。
  • 當一張圖片要回來的時候,回到原本的位置,並讓在畫面上的圖片平均分配位置。
  • 手機轉向後,上述功能依然有效。

可以先想想看如果是你會怎麼做,然後再往下繼續看。


StackView Animation

其實標題已經告訴你 UIStackView 可以實現上面的效果。

ViewController 上下我們都放了 UIStackView 其中上面放了三張圖片用來展示效果,而下面的按鈕分別控制上面三張圖片的顯示和隱藏。

UIStackView 屬性

  • Axis 為 Vertical(豎直排列)或者 Horizontal(水平排列)
  • Distribution 為 Fill / Fill Equally / Fill Proportionally / Equal Spacing / Equal Centering

所以對於三張圖的 StackView 我們選擇的是 Axis 為 Vertical & Distribution 為 Fill Equally

Animation

接下來會讓你驚訝實現動畫的非常的容易,只要會基本的 UIView.animate 方法,就可以實現上面的效果了。

UIStackView 有一個特性,當我們改變其中 arrangedSubView 是否顯示的時候,畫面就會重新 render

所以我們只要改變其中的一張圖片的 isHidden 狀態,就會讓 UIStackView 並按照我們 Distribution 的設置去重新 render 畫面。

而我們再利用 UIView.animate 方法,去將 isHidden 改變的過程通過動畫來表現,就有了我們要的效果。

而畫面底部的三個按鈕(Toggle 1/2/3)分別控制著三個圖片的顯示、隱藏。


參考

發表迴響

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