How to disable taps for a view using allowsHitTesting()
SwiftUI/Responding to events 2019. 11. 19. 14:17반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
How to disable taps for a view using allowsHitTesting()
SwiftUI는 allowHitTesting() modifier를 사용해서 모든 종류의 탭을 수신받는 뷰를 멈출수 있습니다. 뷰에 대한 터치(hit testing)를 허용하지 않는 경우에, 모든 탭은 자동으로 뒤에 있는 뷰로 계속됩니다.
이를 증명하기 위해, 아래에 버튼이 있는 반투명 사격형을 포함하는 ZStack이 있습니다.
ZStack {
Button("Tap Me") {
print("Button was tapped")
}
.frame(width: 100, height: 100)
.background(Color.white)
Rectangle()
.fill(Color.red.opacity(0.2))
.frame(width: 300, height: 300)
.clipShape(Circle())
.allowsHitTesting(false)
}
사각형이 버튼 위에 있을지라도, allowHisTesting(false) 입니다 - 사각형에서 하는 모든 탭은 사각형에 의해 탭 되지 않지만, 대신 아래에 있는 버튼으로 전달됩니다.
이런 종류의 효과는 하나의 뷰를 다른 뷰로 강조 표시할 때 유용합니다 - 위의 빨간 원은 튜토리얼이 말하는 Tap here to get started 일수 있고 원이 자체적으로 탭을 처리하는 경우에는 동작하지 않습니다.
반응형
'SwiftUI > Responding to events' 카테고리의 다른 글
How to hide the label of a Picker, Stepper, Toggle, and more using labelsHidden() (0) | 2019.11.19 |
---|---|
How to respond to view lifecycle events: onAppear and onDisappear (0) | 2019.11.19 |
How to add a gesture recognizer to a view (0) | 2019.11.19 |
How to control the tappable area of a view using contentShape() (0) | 2019.11.19 |
How to read tap and double-tap gestures (0) | 2019.11.19 |
How to create a stepper and read values from it (0) | 2019.11.19 |
How to create a segmented control and read values from it (0) | 2019.11.19 |
How to create a date picker and read values from it (0) | 2019.11.19 |