当用户长按它时,我尝试从滚动视图中删除项目。
所以,如果滚动视图的项目来自一个简单的数组(命名为post),那么我将使用firstIndex(of:item)来完成isse!和
ScrollView(.horizontal, content: {
HStack(spacing: 100) {
ForEach(post, id: \.self){ item in
ZStack {
Text(item).onTapGesture {
self.post.remove(at: self.post.firstIndex(of: item)!)
}
}
}
.padding(.leading, 10)
}
})
如果我的数组(命名存储)的类型为type,我的isse现在是
class DataModel:Identifiable , Codable {
var nameAirport : String
var countryAirport : String
var icaoAirport : String
var metar: String
var taf : String
如何找到方法remove传递的索引? .firstIndex(at :)不存在,我仅找到.firstIndex(where :),但找不到使用方法? 知道如何找到该索引吗?
在我的代码下面?谢谢你帮我...
ScrollView(.horizontal, showsIndicators: true) {
HStack(spacing: 10) {
ForEach(dm.storage) { item in
VStack {
Text(item.icaoAirport).onLongPressGesture {
self.dm.storage.remove(at: ) //// how can i get index
///
}
}
}
}
}
答案 0 :(得分:0)
我认为您无需使用任何类似这样的参数就可以做到:
Text(item.icaoAirport).onLongPressGesture {
self.dm.storage.remove
}
通常,它应该可以工作。我将此技术与.onDelete(self.dm.storage.remove)
一起使用。
如果它不起作用,建议您为模型添加一个ID。