SwiftUI List
will automatically highlight the tapped row, iff there is a NavigationLink inside.
Since I use SwiftUI embedded in UIKit via UIHostingController
, I handle my navigation with a UINavigationController
, so I do not want to use NavigationLink
.
However, I need the List rows to be highlighted on tap, which is not there when using .onTapGesture
How can I do that?
Here is an example:
List {
Section(header: Text("Section header text")) {
HStack { // A row in the list
Image(systemName: "circle")
VStack(alignment: .leading) {
Text("profile name")
// Sub label
Text("Description")
.foregroundColor(.secondary)
.font(.system(size: 12))
}
Spacer()
}
.contentShape(Rectangle())
.onTapGesture { // Detect tap on the row
Print("Perform action here...")
// THE TAP IS NOT ANIMATED BECAUSE THERE IS NO NAVIGATION LINK HERE.
}
}
}