单击时停止按钮变灰

问题描述 投票:0回答:2

我有一个页面上有一堆按钮的视图。每个按钮都使用我添加到资产文件夹中的一本书的图像。在我的按钮上,我有一些关于 .onLongPressGesture 修饰符的代码,它基本上会在单击时改变图像的比例。因此,当您单击“书籍按钮”时,它会放大一点,然后在单击完成后缩小回原来的大小。

我遇到的问题是,当我单击我的按钮时,它会将按钮从其原始颜色变灰并保持这种状态,直到单击操作完成。我猜它是某种默认的东西,所以用户知道它点击了按钮。无论如何要禁用它以便按钮/图像的颜色/不透明度在整个点击过程中保持不变?

        Button(action: {
        
    }, label: {
        Image("book_Fotor")
            .resizable()
            .scaledToFit()
            .frame(width: 70, height: 85)
        
    }).scaleEffect(pressed ? 1.25 : 1.0)
        .onLongPressGesture(minimumDuration: 2.5, maximumDistance: .infinity, pressing: { pressing in
            withAnimation(.easeIn(duration: 0.75)) {
                self.pressed = pressing
            }
        }, perform: { })
button swiftui imagebutton
2个回答
0
投票
struct CustomButtonStyle: ButtonStyle {
    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            .padding()
            .background(configuration.isPressed ? Color.blue : Color.green)
            .foregroundColor(.white)
            .cornerRadius(10)
    }
}

Button(action: {
    // Add your button action here
}) {
    Text("My Button")
}
.buttonStyle(CustomButtonStyle())

你可以尝试写自己的风格


0
投票

只是不要使用

Button
并在图像本身上使用简单的
onTapGesture
修饰符:

Image("book_Fotor")
    .resizable()
    .scaledToFit()
    .frame(width: 70, height: 85)
    .scaleEffect(pressed ? 1.25 : 1.0)
    .onTapGesture {
        print("Tap") // <- 👈 Here is the Tap Action
    }
    .onLongPressGesture(
        minimumDuration: 2.5,
        maximumDistance: .infinity,
        pressing: { pressing in
            withAnimation(.easeIn(duration: 0.75)) {
                self.pressed = pressing
            }
        }
    ) {
        print("Long")
    }
© www.soinside.com 2019 - 2024. All rights reserved.