스택 뷰를 탭하는 것 노트

스택 뷰를 탭하는 것

SwiftUI의 VStack과 HStack 뷰는 자동으로 자신의 경계 내의 빈 공간에서 탭을 등록하지 않는다. 이 문제는 컨테이너 뷰에 제스처를 연결할 때 발생하며, 탭은 포함된 뷰에서만 등록된다. 일반적인 해결 방법은 빈 공간을 채우기 위해 배경 뷰를 추가하는 것이다. 그러나 더 효율적인 해결 방법은 contentShape 수정자를 사용하는 것이다. contentShape 수정자는 제스처 히트 테스트에 사용되는 모양을 지정할 수 있다. 외부 VStack에 .contentShape(Rectangle())를 적용하면 전체 영역이 탭 대상이 된다. 이렇게 하면 VStack의 경계 내에서 어디서나 탭을 하면 관련된 제스처가 트리거된다. 이것은 컨테이너 뷰에서 빈 공간에서 탭에 반응하지 않는 제스처의 문제를 해결한다. 이 접근 방식은 불필요한 배경 뷰가 필요 없게 한다. contentShape 수정자는 컨테이너 뷰 내에서 제스처 상호 작용을 처리하는 더 깨끗하고 직접적인 해결책을 제공한다.