如何在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 手势,像这样。这将在你触摸它时立即更新拖动位置。所以它就像触摸事件一样。它也没有任何喜欢的动画。如果你愿意,可以添加。
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
}
)