У меня есть представление в моем приложении, в котором он показывает ForEach массива специально созданных ячеек для отображения информации, но я заметил, что очень сложно прокручивать поверх этих ячеек. Я заметил, что он отлично работает, если я удалю .gesture (LongPressGesture ()), но я хочу сохранить это. Есть ли другой способ обойти это или заменить .gesture (LongPressGesture ())?
Вот мой код:
struct refrigeItem: Identifiable, Hashable {
var id = UUID()
var icon: String
var title: String
var daysLeft: Int
}
struct RefrigeratorItemCell: View {
var icon: String
var title: String
var lastsUntil: Int
var body: some View {
HStack {
Text(icon)
.font(.largeTitle)
.padding(.leading, 8)
VStack {
HStack {
Text(title)
.font(.custom("SF Pro Text", size: 16))
.multilineTextAlignment(.leading)
Spacer()
}
HStack {
//TODO: fix this
Text("lasts for \(self.lastsUntil) days")
.font(.custom("SF Compact Display", size: 16))
.foregroundColor(.gray)
.multilineTextAlignment(.leading)
Spacer()
}
}
Spacer()
}
.padding()
.background(Rectangle().cornerRadius(16).padding(.horizontal)
.foregroundColor(.gray)
)
.padding(.bottom)
}
}
struct ContentView: View {
@State var displayPreview = [refrigeItem(icon: "?", title: "eggs", daysLeft: 5), refrigeItem(icon: "?", title: "croissant", daysLeft: 6)]
var body: some View{
NavigationView {
GeometryReader { geo in
VStack {
ScrollView(.vertical, showsIndicators: true, content: {
VStack {
ForEach(self.displayPreview, id: \.self){item in
RefrigeratorItemCell(icon: item.icon, title: item.title, lastsUntil: item.daysLeft)
.gesture(LongPressGesture()
.onEnded({ i in
print("long pressed")
}))
}
}
})
}
}
}
}
}