【问题标题】:SwiftUI ButtonStyle scaleEffect animates button position changesSwiftUI ButtonStyle scaleEffect 动画按钮位置变化
【发布时间】:2021-05-31 13:14:47
【问题描述】:

我们有几个设置了自定义 ButtonStyle 的按钮,它们在单击时缩放和更改这些按钮的 alpha。这些按钮在一个工作表中,可以拖动。使用 scaleEffect 时如何防止按钮的位置被动画化?没有按钮样式没关系,但显然它不会在点击时产生动画。有关问题,请参见 gif。谢谢。

struct ScaleButtonStyle: ButtonStyle {
    func makeBody(configuration: ButtonStyleConfiguration) -> some View {
        configuration
            .label
            .animation(nil)
            .scaleEffect(configuration.isPressed ? 0.95 : 1)
            .opacity(configuration.isPressed ? 0.8 : 1)
            .animation(.linear(duration: 0.2))
    }
}

【问题讨论】:

    标签: ios swiftui


    【解决方案1】:

    尝试将动画链接到相关值,例如

        .scaleEffect(configuration.isPressed ? 0.95 : 1)
        .opacity(configuration.isPressed ? 0.8 : 1)
        .animation(.linear(duration: 0.2), value: configuration.isPressed)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多