【问题标题】:Disable default button click animation in SwiftUi在 SwiftUi 中禁用默认按钮单击动画
【发布时间】:2020-05-04 13:31:49
【问题描述】:

如何在 SwiftUI 和 Swift 5 中禁用默认的按钮点击动画?我尝试将.animation(.nil) 添加到按钮,没有任何更改。

我知道您可以执行以下操作:

Button(action: {}) { Capsule() }
.buttonStyle(NoAnim())

struct NoAnim: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> some View {
    configuration.label
}

有人知道更聪明的方法吗?

【问题讨论】:

    标签: animation button swiftui default disable


    【解决方案1】:

    如果我正确理解了你的问题,那么最好只使用

    Capsule()
      .onTapGesture {
        // << action here !!
      }
    

    【讨论】:

    • 通过 Voice Over 或其他可访问性选项将此 Capsule 识别为按钮的用户吗?
    【解决方案2】:

    iOS 13.x,斯威夫特 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
            }
    )
    

    【讨论】:

    • 是否通过 Voice Over 或其他可访问性选项将此标签识别为按钮的用户?
    • 卢卡斯。您可以将许多标签添加到代码中以使其更易于访问,它们是您需要特别添加的选项,带有 .accessability 修饰符。我在上面测试了画外音并编辑了代码以在您传递文本时宣布一个按钮。但在相关/不同的说明中,使用本网站的最佳方式是发布个人问题。您发布的帖子数量没有限制。要获得最佳答案,请在特定帖子中询问有关可访问性的特定问题。
    猜你喜欢
    • 2011-04-20
    • 1970-01-01
    • 2018-04-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多