概要
SwiftUIで画面表示後にカラーが変化するようにしたかったので、その方法を記載します。
【デモ】
方法
@State
でcolorを監視できるようにします。
画面の表示時にonAppear
が呼ばれるので、
withAnimation
を用いて、colorプロパティを指定した秒数をかけて変化させます。
import SwiftUI
struct ContentView: View {
@State private var color: Color = .blue
var body: some View {
Rectangle()
.onAppear(perform: {
// 画面が表示されたら3秒かけて赤色に変化させる
withAnimation(.easeInOut(duration: 3), {
color = .red
})
})
.foregroundColor(color)
.ignoresSafeArea()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
ボタンを押したらアニメーションで色を変化させたいとかであれば、onChange
で検知すればできそうですね!