SwiftUIのbuttonStyleを使用して、ボタンを押している時に動きをつける方法です。
このサンプルではボタンを押している間透明度と大きさを変更してます。
configuration.isPressedで押しているか判定することができます。
SoftPressButtonStyle.swift
struct SoftPressButtonStyle: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
configuration.label
.padding()
.background(
RoundedRectangle(cornerRadius: 10)
.fill(configuration.isPressed ? Color.gray.opacity(0.6) : Color.gray.opacity(0.2))
)
.scaleEffect(configuration.isPressed ? 0.9 : 1.0)
}
}
このスタイルを適用したいボタンには、
.buttonStyle(SoftPressButtonStyle())のように設定することができます。
このように簡単にカスタマイズできるのでデザインの幅が広がりますね。
