SwiftUI自定义ButtonStyle
记录一下如何通过自定义SwiftUI自定义ButtonStyle,来给按钮设计一个点击样式
import SwiftUI
/*
本文章 通过创建ButtonStyle,来自定义按钮的点击动画
*/
struct PressButtonStyle: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
/*
当只创建一个label的时候这时点击没有闪烁的动画,下面展示下如何通过 缩小和同名度自定义一个点击样式
*/
configuration.label
.scaleEffect(configuration.isPressed ? 0.9 : 1.0)
.opacity(configuration.isPressed ? 0.9 : 1.0)
}
}
struct ButtonStyleBootCamp: View {
var body: some View {
Button(action: {
}, label: {
Text("Normal Button".uppercased())
.font(.headline)
.foregroundColor(.white)
.padding()
.padding(.horizontal, 50)
.background(.blue)
.cornerRadius(10)
})
Button(action: {
}, label: {
Text("customer button".uppercased())
.font(.headline)
.foregroundColor(.white)
.padding()
.padding(.horizontal, 50)
.background(.blue)
.cornerRadius(10)
})
/// 添加自定义的buttonStyle
.buttonStyle(PressButtonStyle())
}
}
#Preview {
ButtonStyleBootCamp()
}
效果图 :