値によって塗りつぶされ具合が変わるシンボルがちょこちょこあるので、これを使ってアニメーションを作ってみる
ImageにvariableValue
を渡すと、可変シンボルであれば、その数値によって塗りつぶされ具合が変わってくれる
import SwiftUI
struct Hoge: View {
var body: some View {
Image(systemName: "timelapse", variableValue: 0.2)
.imageScale(.large)
.font(.system(size: 200))
}
}
struct Modal_Previews: PreviewProvider {
static var previews: some View {
Hoge()
}
}
あとはこの数値を時間経過で増減させればOK
import SwiftUI
struct Hoge: View {
@State var time = 0.0
let timer = Timer.publish(every: 0.1, on: .main, in: .common).autoconnect()
var body: some View {
Image(systemName: "timelapse", variableValue: time)
.imageScale(.large)
.font(.system(size: 200))
.onReceive(timer) { value in
if time < 1.0 {
time += 0.1
} else {
time = 0.0
}
}
}
}
struct Modal_Previews: PreviewProvider {
static var previews: some View {
Hoge()
}
}