#17 讓天空的星星閃爍 animatedImageNamed 動畫實作
Published in
Nov 29, 2023
做了從 playground 調色去背圖片的題目後,再來練習一下實作這個類似 gif 的效果, 讓天空的星星閃爍。
操作畫面的GIF:
就這樣,天空熱鬧起來了。
開始
前一個題目用了Preview程式製作透明背景的png圖片,並且把二張圖片疊加做出改變背景顏色及圖片的效果,在前景圖片增加透明度來改變背景的顏色。這篇要讓天空的星星動起來。
主要是使用這個UIImage 這個 Method API,下面是Apple手冊的說明
animatedImageNamed(_:duration:)
此方法透過將一系列數字附加到 name 參數中提供的基本檔案名稱來載入一系列檔案。 例如,如果 name 參數的內容為“image”,則此方法將嘗試從名稱為“image0”、“image1”等一直到“image1024”的檔案中載入圖片。 動畫圖像中包含的所有圖像應具有相同的尺寸和比例。
我們先準備要播放的圖片,這三張天空加了不同位置的星星圖示。
把他拉進 Assets.xcassets 裡,要注意檔名前方的名字都要一樣,只有最後編號不同。
在 ViewController 的 viewDidLoad() 裡加上載入圖片的程式
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let houseImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 871, height: 867))
houseImageView.contentMode = .scaleAspectFill
//把圖片加入到View裡面
view.addSubview(houseImageView)
//animatedImageNamed 第一個參數檔名最後的編號不要打他,才會跑全部的圖片
//duration 這些圖片要在幾秒內跑完
let animatedImage = UIImage.animatedImageNamed("a-", duration: 3)
//顯示圖片
houseImageView.image = animatedImage
}
}
題目:
在StoryBoard上,使用animatedImageNamed 製作多張圖連續播放動畫 (hw#4–6.2)
⭐️ 自訂 controller 類別和利用 viewDidLoad 客製 App 畫面 (hw#7–1)