gpt4 book ai didi

ios - 点击时 SwiftUI 按钮不灰显

转载 作者:行者123 更新时间:2023-12-05 01:09:26 32 4
gpt4 key购买 nike

我真的很想理解一些事情。我想创建一个带有一些文本的按钮。该按钮有一个框架和一个颜色(颜色与背景相同)。当我点击该按钮时,我希望产生某种效果(整个按钮的某种变色)。如果颜色与背景相同,则在点击期间文本的颜色会有所不同。如果我有一个带有红色背景的按钮,则会对整个按钮产生效果。我附上了一张关于事情应该是什么样子的图片。

点击前按钮应如下所示:

enter image description here

当用户按下按钮(不松开)时,按钮如下所示: enter image description here

在我的情况下,红色矩形颜色与背景颜色相同。但我想要相同的矩形覆盖。取而代之的是,我获得了以下内容。

点击前:

enter image description here

在点击期间:

enter image description here

在这种情况下,只有数字有某种叠加。但矩形不是。

这里是代码。如果按钮的颜色与背景颜色相同,我应该更改什么以获得相同的反馈?

Button(action: {
some action
}){
Text("1")
.font(.title)
.foregroundColor(.blue)
.frame(width: 80, height: 48)
.background(Color.white)
.cornerRadius(4)
}

最佳答案

我不能说完全理解您想要实现的目标,但是可以在按钮样式的帮助下完成不同的按钮按下视觉反馈。在样式中,我们可以访问 isPressed 状态,因此可以根据该状态有条件地更改按钮的呈现方式。

这是一些应该有帮助的演示

Button(action: {
some action
}){
Text("1")
}
.buttonStyle(MyButtonStyle())

struct MyButtonStyle: ButtonStyle {

func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.font(.title)
.foregroundColor(configuration.isPressed ? .white : .blue) // << ex. !!
.frame(width: 80, height: 48)
.background(configuration.isPressed ? Color.clear : Color.white) // << ex. !!
.cornerRadius(4)
}
}

关于ios - 点击时 SwiftUI 按钮不灰显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65235394/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com