如何删除点击时按钮的不透明动画?

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

我有一个自定义下拉列表,顶部项目是一个按钮(因为 .onTapGesture 不适用于标题中的项目),我想删除该按钮的点击效果(文本的不透明度更改)。当我点击选定的项目时,我希望与简单的文本相同,没有点击效果。 enter image description here

我尝试了 .animation(nil) 和 .buttonStyle(.plain) 但没有运气。

                    Button(action: {
                        isSelecting = !isSelecting
                    }) {
                        HStack {
                            Text(selectedItem?.title ?? "Select Item")
                                .animation(.none)
                            Spacer()
                            if items.count > 1 {
                                Image(systemName: "chevron.down")
                            }
                            
                        }
                        .padding(.horizontal)
                    }
                    .buttonStyle(.plain)
                    .animation(nil)
                    .disabled(items.count < 2)
                    .onTapGesture {
                        isSelecting.toggle()
                    }
ios user-interface button swiftui mobile-development
1个回答
0
投票

您可以创建自定义

ButtonStyle
。在
makeBody
中,不要选中
configuration.isPressed
。始终返回
accentColor
颜色的标签。

struct NoHighlightButtonStyle: ButtonStyle {
    func makeBody(configuration: Configuration) -> some View {
        // handle button role if necessary
        // if configuration.role == .destructive {
        //     configuration.label.foregroundColor(.red)
        // } else {
            configuration.label.foregroundColor(.accentColor)
        // }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.