https://s3-us-west-2.amazonaws.com/secure.notion-static.com/444e9d20-e228-4813-bb30-0d247e73c8b3/Screen_Recording_2019-09-16_at_0.20.01.mov
struct OverlayButton<Content: View>: View {
private let content: Content
init(
@ViewBuilder _ content: () -> Content
) {
self.content = content()
}
var body: some View {
Button(action: {}) { content }
.buttonStyle(_ButtonStyle())
}
private struct _ButtonStyle: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> AnyView {
if configuration.isPressed {
return AnyView(
configuration.label
.background(Color(white: 0.96))
)
} else {
return AnyView(
configuration.label
.background(Color(white: 1, opacity: 0.0001))
)
}
}
}
}
private func row(title: String, onTap: @escaping () -> Void) -> IdentifiedView {
IdentifiedView {
OverlayButton {
HStack() {
Text(title)
.multilineTextAlignment(.leading)
.font(.system(.body, design: .default))
.foregroundColor(.black)
Spacer()
}
.padding(.init(top: 16, leading: 0, bottom: 16, trailing: 0))
}
}
}