微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 SWIFTUI 中添加新项目后,在列表中的图像上点击手势不起作用

如何解决在 SWIFTUI 中添加新项目后,在列表中的图像上点击手势不起作用

我在图像上点击操作时遇到问题。我有一个简单的项目列表,每行有 4 个按钮。每行有 4 张图片,每张图片上都有一个 onTapGesture 操作链接。我第一次加载列表并且一切正常,但是当我尝试在列表中添加一个新项目(通过在导航栏上添加链接)时,会创建一个新行,但是如果我尝试点击,点击操作不起作用我添加的最后一行中的 4 张图像之一。例如,向上或向下箭头需要向上或向下移动一行。添加新行后,新行上的向上/向下箭头不起作用,但如果我点击最后一行 -1 向下箭头,两行开关和插入行上的图像点击操作开始起作用。

子类别列表来自另一个视图。

    struct ExpandedCategoriaView : View {
        @Binding var subCategorie : [disegnoCategoria]
    ......
                    List{
                        
                        ForEach(self.subCategorie,id: \.id){
                            disegno in
                            HStack{
                                if(disegno.cancellato == 1 ){
                                    Text(LocalizedStringKey(disegno.label))
                                        .padding(.leading,10)
                                        .foregroundColor(.red)
                                    Spacer()
                                    Image(systemName: "clock.arrow.circlepath")
                                        .padding(EdgeInsets(top: 5,leading: 5,bottom: 5,trailing: 5))
                                        .overlay(
                                            RoundedRectangle(cornerRadius: 8)
                                                .stroke(Color.red,linewidth: 1))
                                        .imageScale(.medium)
                                        .onTapGesture {
                                            DBHelper.dbHelperInstance.restoreLogicdisegnoCategoriaById(iddisegnoCategoria: disegno.id)
                                            subCategorie = getdisegnoCategorieByCategoria()
    
                                        }
                                }
                                else{
                                    
                                    if(disegno.editable == 0)
                                    {
                                        Text(LocalizedStringKey(disegno.label))
                                            .padding(.leading,10)
                                            .foregroundColor(.blue)
                                        
                                        Spacer()
                                    }
                                    else
                                    {
                                        Text(LocalizedStringKey(disegno.label))
                                            .padding(.leading,10)
                                            .foregroundColor(.green)
                                        Spacer()
                                        
                                        HStack{
                                            
                                            
                                            Image(systemName: "arrow.down")
                                                .padding(EdgeInsets(top: 5,trailing: 5))
                                                .overlay(
                                                    RoundedRectangle(cornerRadius: 8)
                                                        .stroke(Color.orange,linewidth: 1))
                                                .imageScale(.medium)
                                                .onTapGesture {
                                    
                                                    godown(disegnoCategoria: disegno)
                                                    
                                                }
                                                .padding(.trailing,25)
                                          
                                            
                                            Button(action: {
                                                goUp(disegnoCategoria: disegno)
                                                print("spinto bottone")
                                                
                                            })
                                            {
                                                Image(systemName: "arrow.up")
                                                     .padding(EdgeInsets(top: 5,trailing: 5))
                                                     .overlay(
                                                         RoundedRectangle(cornerRadius: 8)
                                                             .stroke(Color.orange,linewidth: 1))
                                                     .imageScale(.medium)
                                                     .padding(.trailing,25)
    
                                                    
                                            }
                                            .buttonStyle(BorderlessButtonStyle())
                                            
                                            //.buttonStyle(PlainButtonStyle())
                                  
                                            
                                            Image(systemName: "pencil")
                                                .padding(EdgeInsets(top: 5,trailing: 5))
                                                .overlay(
                                                    RoundedRectangle(cornerRadius: 8)
                                                        .stroke(Color.yellow,linewidth: 1))
                                                .imageScale(.medium)
                                                .onTapGesture {
                                                    activeSheetdisegnoCategorie = .update
                                                    self.selecteddisegno = disegno
                                                    
                                                }
                                            
                                            Image(systemName: "trash.fill")
                                                .padding(EdgeInsets(top: 5,trailing: 5))
                                                .overlay(
                                                    RoundedRectangle(cornerRadius: 8)
                                                        .stroke(Color.red,linewidth: 1))
                                                .imageScale(.medium)
                                                .onTapGesture {
                                                    DBHelper.dbHelperInstance.deleteLogicdisegnoCategoriaById(iddisegnoCategoria: disegno.id)
                                                    subCategorie = getdisegnoCategorieByCategoria()
    
                                                }
                                                .padding(.leading,25)
                                            
                                        }
                                        
                                    }
                                }
                              
                            }  
                        }
                    }
      .navigationBarTitle(Text(LocalizedStringKey("categoria_layout_expand_titolo")),displayMode: .inline)
                .navigationBarItems(trailing: Button(action: {
                    
                    activeSheetdisegnoCategorie = .add
                },label:  {
                    Text(LocalizedStringKey("add"))
                }))
                
                .sheet(item: $activeSheetdisegnoCategorie,ondismiss: {
                    self.subCategorie = getdisegnoCategorieByCategoria()
            
                   
                  
                }) {
                    item in
                    switch item {
                    case .add :
                        AdddisegnoCategoriaView(activeSheetdisegnoCategoria: $activeSheetdisegnoCategorie,listadisegnoCategorie: $sottocate.listadisegnoCategorie,toRefresh: $updater,categoriaExpanded: categoriaToExpand,nuovodisegnoCategoria: {
                            disegnoCategoria in
                            DBHelper.dbHelperInstance.insertdisegnoCategoriaObj(disegnoCategoria: disegnoCategoria)
                            subCategorie = getdisegnoCategorieByCategoria()
                            sottocate.listadisegnoCategorie = getdisegnoCategorieByCategoria()
                                                
                        })
                       
    
    
                    }
                }
                
            }
            .onAppear(){
       
                getListaSubCategorie()
                getListaSubCategorieProva()
               
            }
    }



    class disegnoCategoria : Identifiable {
        var id : Int
        var idCategoria: Int
        var ordine : Int
        var tipo : Int
        var label : String
        var editable : Int
        var cancellato : Int
        var obbligatorio : Int
        
        init(id: Int,idCategoria: Int,ordine: Int,tipo: Int,label: String,editable: Int,cancellato: Int,obbligatorio: Int) {
            
            self.id = id
            self.idCategoria=idCategoria
            self.ordine=ordine
            self.tipo = tipo
            self.label=label
            self.editable=editable
            self.cancellato=cancellato
            self.obbligatorio=obbligatorio
    
        }
        
        init() {
            self.id = -1
            self.idCategoria = -1
            self.ordine = -1
            self.tipo = -1
            self.label = ""
            self.editable = -1
            self.cancellato = -1
            self.obbligatorio = -1  
        }
       }

插入 2 行并重新加载视图后 [1]: https://i.stack.imgur.com/DL0No.png

点击向上足球箭头 [2] 后: https://i.stack.imgur.com/pTmXH.png

添加了高尔夫,但如果我尝试点击向上箭头,它不会向上移动 [3]: https://i.stack.imgur.com/s101V.png

有什么想法吗?谢谢大家

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?