The*_*anu 5 button background-color ios swiftui
我真的很想理解一些事情。我想创建一个带有一些文本的按钮。该按钮有一个框架和一个颜色(颜色与背景相同)。当我点击该按钮时,我希望产生一些效果(整个按钮某种变色)。如果颜色与背景相同,则点击期间文本的颜色会有所不同。如果我有一个红色背景的按钮,则会对整个按钮产生效果。我附上了一张图片,展示了事情应该是什么样子。
点击按钮之前应如下所示:
就我而言,红色矩形颜色与背景颜色相同。但我想要相同的矩形叠加。相反,我得到以下内容。
点击之前:
点击期间:
在这种情况下,只有数字有某种覆盖。但矩形则不然。
这是代码。如果按钮的颜色与背景颜色相同,我应该更改什么才能获得相同的反馈?
Button(action: {
some action
}){
Text("1")
.font(.title)
.foregroundColor(.blue)
.frame(width: 80, height: 48)
.background(Color.white)
.cornerRadius(4)
}
Run Code Online (Sandbox Code Playgroud)
我不能说这理解了您到底想要实现什么,但是可以借助按钮样式来完成按下按钮时的不同视觉反馈。在样式中,我们可以访问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)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2254 次 |
| 最近记录: |