#16 swift animate 動畫練習(三)

Stephen Huang
Jul 6, 2021

UIButton.addTarget, animateKeyframes, addKeyframe, snapshot 使用。

這次,用程式碼製造UIView、UIImageView及UIButton

1製造一個藍色的alertView

2製造imageView ,並使它存在在alertView上面。

3製造button ,他在畫面的正中間,而且設置addTarget,加入點擊按鈕時的Action。

在第47行加入addTarget ,這個地方遇到問題:

Xcode系統一直提示 #selector是 objc的寫法,但我還不知道新的寫法,apple developer網站也沒有舉例,就暫時沿用。

這個方法的影響是必須在呼叫的function 前面多加 “@objc” ,如:

@objc func dismissAlert()

4設置動畫

設置第一動畫讓畫面縮小,並移至中間點

第二動畫是讓整個畫面下移,從畫面消失。

這樣的設置有一個問題,因為imageView也是在alertView內
但改面alertView的邊界,imageView並未同時縮小,動畫變得非常奇異。

5為了讓動畫正常顯示,我們用snapshot進行畫面截圖

截圖後,就好像把整個畫面都變成一個物件一樣
整個畫面就可以一起縮小了

snapshot後,把原先的alertView移除,避免雙重顯示。

6snapshot後的動畫程式碼

這時我們在模擬器啟動,動畫已可以照預期中顯示。

--

--