簡體   English   中英

SwiftUI ButtonStyle scaleEffect 動畫按鈕 position 更改

[英]SwiftUI ButtonStyle scaleEffect animates button position changes

我們有幾個按鈕,它們設置了自定義 ButtonStyle,它們在單擊時縮放和更改這些按鈕的 alpha。 這些按鈕在一個工作表中,可以拖動。 使用 scaleEffect 時,如何防止按鈕的 position 被動畫化? 沒有按鈕樣式也沒關系,但顯然它不會在點擊時產生動畫。 有關問題,請參見 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))
    }
}

示范

嘗試將 animation 鏈接到相關值,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM