바텀 시트 .sheet 사용시 드래그 끊김 현상

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.


SDK 버전 : KakaoMapsSDK 2.12.0
앱 ID: 1142852

iOS 18.0, Xcode 16.0 공식 릴리즈 버전입니다.

SwiftUI에서 KakaoMapView와 바텀 시트를 위한 .sheet 문법을 사용하면 카카오맵 드래그가 끊기는 현상이 발생합니다.

카카오 이슈

현재 제 코드의 상황은 이런 상태입니다.


KakaoMapView(
    draw: $store.draw
)
.sheet(isPresented: .constant(true)) {
// 어떤 View를 넣어도 발생합니다. 예시로 Text 추가
    Text("tmp")
}
interactiveDismissDisabled()
.presentationBackgroundInteraction(.enabled)
.presentationDetents([.height(20), .medium, .large])
.presentationDragIndicator(.visible)

샘플 프로젝트에서도 같은 현상이 발생합니다.
아래는 샘플 프로젝트에 코드를 추가하여 현상을 재현했습니다.

struct ContentView: View {
    @State var draw: Bool = false
    var body: some View {
        KakaoMapView(draw: $draw).onAppear(perform: {
            self.draw = true
        })
        .onDisappear(perform: {
            self.draw = false
        })
        .frame(maxWidth: .infinity, maxHeight: .infinity)
        .sheet(isPresented: .constant(true)) {
            if #available(iOS 16.4, *) {
                Text("")
                    .interactiveDismissDisabled()
                    .presentationBackgroundInteraction(.enabled)
                    .presentationDetents([.height(20), .medium, .large])
                    .presentationDragIndicator(.visible)
            } else {
                // Fallback on earlier versions
            }
        }
    }
}

@smc 올려주신 내용으로 문제 현상을 확인해 보니
sheet 뷰가 그려지고 있을 때, 밑에 깔린 지도 뷰에 패닝을 위해 터치 후 움직이면 touchCancelled 이벤트가 들어오고 있습니다. 이때문에 제스쳐 동작이 중지되어 움직임이 끊기고 있는 것으로 보입니다.
모달 뷰 대신 다른 형태로 구현을 하시거나 최상단에 touchEvent를 path through 해 주는 뷰를 추가하거나 하는 우회방법을 사용하실 필요가 있을 것 같습니다.