SwiftUI — добавление действий свайпа в пользовательскую структуру не отображается в симуляторе

#swift #swiftui

Вопрос:

К сожалению, я не могу добавить swipeActions в этот элемент строки. Я перепробовал много образцов, но они все равно не появляются. В документации также показан пример с пользовательским элементом. Я не вижу разницы в своем проекте. Если бы вы могли мне помочь, это было бы здорово. Я новичок в свифте.

Заранее спасибо

импорт SwiftUI

структура SearchBarNew: Просмотр {

 var urlToSubmitLoginToLocal: String = "localhost:8080/search/"  @State private var arrayForSearchResult: [SearchBarBackEndData] = ExampleDataSearch.peopleDummyDataOfSearch @State private var isHidden = true @State private var searchText = "" @State private var showCancelButton: Bool = true let animationDuration: TimeInterval = 0.45 let trackerRotation: Double = 2.585 @State var isAnimating: Bool = false @State var taskDone: Bool = false @State var submitScale: CGFloat = 1 @State var currentUserInteractionCellID: String?  var body: some View {  NavigationView {  VStack {  VStack(spacing: 0){  HStack {  HStack {  Image(systemName: "magnifyingglass")  TextField("search", text: $searchText, onEditingChanged: { isEditing in  self.showCancelButton = false  }, onCommit: {  isHidden = false  loadDataForSearchFromBackEnd(textInputSearch: searchText)  }).foregroundColor(.primary)    Button(action: {  self.searchText = ""  }) {  Image(systemName: "xmark.circle.fill").opacity(searchText == "" ? 0 : 1)  }  }  .padding(EdgeInsets(top: 8, leading: 6, bottom: 8, trailing: 6))  .foregroundColor(.secondary)  .background(Color(.secondarySystemBackground))  .cornerRadius(10.0)    if showCancelButton {  Button("Cancel") {  UIApplication.shared.endEditing(true) // this must be placed before the other commands here  self.searchText = ""  self.showCancelButton = false  }  .foregroundColor(Color(.systemBlue))  }  }  .padding(.horizontal)  .navigationBarHidden(showCancelButton)  .navigationBarTitle(Text("Search"))  .resignKeyboardOnDragGesture()  }  List{  VStack{  ForEach(arrayForSearchResult, id: .self) { item in  RowViewSearchBarResult(item: item)  }  .swipeActions {  Button {  print("Message deleted")  } label: {  Label("Delete", systemImage: "trash")  }  .tint(Color.red)  }  .onTapGesture {  print("tapped item")  }  }  }  }  } }  func loadDataForSearchFromBackEnd(textInputSearch: String){  let url = URL(string: urlToSubmitLoginToLocal   searchText)!  if url != nil {  print("Contains a value!")  } else {  // url = URL.init(urlToSubmitLoginToLocal   "Clarity")  print("Error")  }  var request = URLRequest(url: url)  request.setValue("text/plain", forHTTPHeaderField: "Content-Type")  request.httpMethod = "Get"  URLSession.shared.dataTask(with: request) { data, response, error in  guard let data = data,  let response = response as? HTTPURLResponse,  error == nil else { // check for fundamental networking error  print("error", error ?? "Unknown error")  return}  do {  //print("Data Search: ")  let jsonDecoder = JSONDecoder()  let decodedData = try jsonDecoder.decode([SearchBarBackEndData].self, from: data)  //print(decodedData[0]._id)  arrayForSearchResult = decodedData  //print("Size: (arrayForSearchResult.count)")  } catch let error {  print("There is a error while decoding your JSON Model")  print(error)  }  }.resume() }  

}

структура rowviewsearchbarрезультат: Просмотр{ @Состояние var элемент: SearchBarBackEndData

 var body: some View {  VStack{  HStack(spacing: 20){  let str = item.metadata.image  if let data = Data(base64Encoded: str), let uiImage = UIImage(data: data) {  Image(uiImage: uiImage)  .resizable()  .scaledToFit()  .frame( height: 70)  .cornerRadius(4)  .padding(.vertical, 4)  } else {  let _ = print("FAIL")  }  VStack (alignment: .leading, spacing: 5) {  Text(item.metadata.title)  .fontWeight(.semibold)  .lineLimit(/*@START_MENU_TOKEN@*/2/*@END_MENU_TOKEN@*/)  .font(.headline)  .minimumScaleFactor(5)  Text(item.metadata.author)  .font(.subheadline)  .foregroundColor(.secondary)    }  }  } }  

}