我试图做到这一点,当我点击一个按钮(这是其他按钮列表的一部分)时,被点击按钮的图像从“star”变为“star.fill”。请帮忙!
ForEach(pies, id: \.self) { pie in
Button(action: {
// some action
}) {
HStack {
Image(systemName: "star")
Text(pie)
Spacer()
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个播放/暂停按钮。
按钮图像根据是否正在播放而变化。
在我的视图中,我有一个变量:
@State var isPlaying : Bool = false
Run Code Online (Sandbox Code Playgroud)
然后,每当您单击按钮时,isPlaying都会发生变化 -> 如果为真,则为假,反之亦然。按钮图像由 设置ternary operator。
Button(action: {
self.isPlaying.toggle()
}) {
Image(systemName: self.isPlaying == true ? "pause.fill" : "play.fill")
.resizable()
.frame(width: 60, height: 60)
}
Run Code Online (Sandbox Code Playgroud)
您可以使用@State变量来存储图像名称并在单击按钮时更改它:
@State var imageName: String = "star"
ForEach(pies, id: \.self) { pie in
Button(action: {
self.imageName = "star.fill"
}) {
HStack {
Image(systemName: imageName)
Text(pie)
Spacer()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2199 次 |
| 最近记录: |