我希望在按下“删除按钮”时在每个按钮的右上角添加一个“垃圾”图像,这样当用户点击垃圾图像时,该按钮将从 vstack 中删除。我想我应该使用 zstack 来定位垃圾图像,但我现在不知道如何。下面显示了垃圾图像应位于每个按钮中的位置。
另外,当我按下“删除按钮”时,似乎每个按钮的文本大小和与另一个按钮的间距略有变化。我该如何克服这个问题?当点击“删除按钮”时,按钮位置、间距、文本大小应保持不变。
struct someButton: View {
@Environment(\.editMode) var mode
@ObservedObject var someData = SomeData()
@State var newButtonTitle = ""
@State var isEdit = false
var body: some View {
NavigationView{
// List{ // VStack
VStack{
VStack{
ForEach(Array(someData.buttonTitles.keys.enumerated()), id: \.element){ ind, buttonKeyName in
//
Button(action: {
self.someData.buttonTitles[buttonKeyName] = !self.someData.buttonTitles[buttonKeyName]!
print("Button pressed! buttonKeyName is: \(buttonKeyName) Index is \(ind)")
print("bool is \(self.someData.buttonTitles[buttonKeyName]!)")
}) {
HStack{ //HStack, ZStack
if self.isEdit{
Image(systemName: "trash")
.foregroundColor(.red)
.onTapGesture{
print("buttonkey \(buttonKeyName) will be deleted")
self.deleteItem(ind: …Run Code Online (Sandbox Code Playgroud)