피드로 돌아가기
Dev.toFrontend
원문 읽기
iOS 26 .glassEffect 자동 병합으로 인한 Gesture Swallowing 해결
iOS 26 Liquid Glass Gotcha: Adjacent Buttons Silently Swallowing Taps
AI 요약
Context
iOS 26의 .glassEffect API를 사용하여 인접한 버튼을 배치한 UI 구조. shape를 지정하지 않은 .interactive() 설정으로 인해 인접한 Glass Surface가 하나의 그룹으로 자동 병합되는 아키텍처적 특성 존재.
Technical Solution
- 기본 Rectangle shape 채택 시 인접 뷰를 단일 Interactive Group으로 인식하는 Liquid Glass 시스템의 자동 병합 메커니즘 파악
- 병합된 그룹 내 Gesture Handler가 계층 구조상 최상단 뷰에만 Tap 이벤트를 라우팅하는 병목 지점 식별
.glassEffect(.clear.interactive(), in: .capsule)와 같이 명시적 Shape를 부여하여 개별 Glass Surface의 독립성 확보- 개별 Shape 정의를 통해 자동 병합 프로세스를 차단하고 각 버튼에 독립적인 Gesture Handler를 할당하는 구조로 변경
- 하위 버전 호환성 및 재사용성 확보를 위해 Shape 파라미터를 포함한 GlassButtonModifier 추상화 계층 설계
실천 포인트
1. iOS 26 이상에서 .glassEffect(.interactive()) 사용 시 반드시 'in:' 파라미터로 Shape를 명시했는지 확인
2. VStack/HStack/ZStack 등 인접 배치된 Glass 요소 간의 Gesture 간섭 여부 검토
3. ViewModifier를 통한 API 래핑 시 Shape 정의를 강제하여 런타임 탭 누락 방지