Теперь, когда список создан, иногда onTapGesture распознает и загружает страницу сведений о еде, при этом другие элементы в списке не регистрируют нажатия. вообще?
Почему это вдруг могло измениться? Я сейчас не могу понять, как сделать так, чтобы каждый элемент в списке можно было нажимать.
Код: Выделить всё
List(searchResults, id: \.fid) { food in
VStack {
HStack {
VStack(alignment: .leading) {
Text(food.name)
.font(.system(size: 20))
.padding(.bottom, 4)
Text("\(food.brand) - \(extractCalories(from: food.calories) ?? "nil")")
.font(.system(size: 16))
}
.padding()
.foregroundColor(Color.white)
Spacer()
VStack {
Image(systemName: "chevron.right")
.foregroundColor(Color.white)
.padding(.trailing, 8)
}
}
.padding([.leading, .trailing], 8.0)
.padding(.top, 0)
.background(
Color(red: 40 / 255, green: 40 / 255, blue: 40 / 255)
.clipShape(RoundedRectangle(cornerRadius: 10))
)
}
.onAppear {
print(searchResults)
}
.contentShape(Rectangle()) // Ensures the entire area is tappable
/*.simultaneousGesture(TapGesture().onEnded {
print("TAPPED FOOD ID: \(food.fid)")
tappedFoodID = food.fid
tappedFoodName = food.name
showFoodItemDetail = true
})*/
.onTapGesture(count: 1) {
print("TAPPED FOOD ID: \(food.fid)")
tappedFoodID = food.fid
tappedFoodName = food.name
showFoodItemDetail = true
}
.listRowSeparator(.hidden)
.listRowBackground(Color.clear)
.scrollContentBackground(.hidden)
.padding(.horizontal, -16) // Remove horizontal padding for the whole list
.padding(.vertical, 0) // Remove vertical padding for the whole list
}

Подробнее здесь: https://stackoverflow.com/questions/790 ... 18-upgrade