在 SwiftUi 中禁用默认按钮单击动画
Disable default button click animation in SwiftUi
如何在 SwiftUI 和 Swift 5 中禁用默认的按钮点击动画?我尝试将 .animation(.nil)
添加到按钮,没有任何更改。
我知道您可以执行以下操作:
Button(action: {}) { Capsule() }
.buttonStyle(NoAnim())
struct NoAnim: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
}
有人知道更聪明的方法吗?
如果我正确理解了你的问题,那么最好只使用
Capsule()
.onTapGesture {
// << action here !!
}
iOS 13.x, Swift 5.
所以您想要的是可点击的东西,而不是按钮。只需使用带有 onTapGesture 的标签,然后您就可以添加任何您喜欢的动画。
或者,您也可以像这样使用 onDrag 手势。这将在您触摸它时立即更新 dragLocation。所以它就像触摸事件。它也没有任何喜欢的动画。如果您愿意,可以添加。
Text("Hello World")
.accessibility(label: Text("Button"))
.gesture(
DragGesture(minimumDistance: 5, coordinateSpace: .global)
.onChanged { value in
self.dragLocation = value.location
}
.onEnded { _ in
self.dragLocation = .zero
}
)
如何在 SwiftUI 和 Swift 5 中禁用默认的按钮点击动画?我尝试将 .animation(.nil)
添加到按钮,没有任何更改。
我知道您可以执行以下操作:
Button(action: {}) { Capsule() }
.buttonStyle(NoAnim())
struct NoAnim: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
}
有人知道更聪明的方法吗?
如果我正确理解了你的问题,那么最好只使用
Capsule()
.onTapGesture {
// << action here !!
}
iOS 13.x, Swift 5.
所以您想要的是可点击的东西,而不是按钮。只需使用带有 onTapGesture 的标签,然后您就可以添加任何您喜欢的动画。
或者,您也可以像这样使用 onDrag 手势。这将在您触摸它时立即更新 dragLocation。所以它就像触摸事件。它也没有任何喜欢的动画。如果您愿意,可以添加。
Text("Hello World")
.accessibility(label: Text("Button"))
.gesture(
DragGesture(minimumDistance: 5, coordinateSpace: .global)
.onChanged { value in
self.dragLocation = value.location
}
.onEnded { _ in
self.dragLocation = .zero
}
)