Neoself의 기술 블로그

[SwiftUI] 바텀시트 외부영역의 어두워짐 효과 제거하기 본문

개발지식 정리/Swift

[SwiftUI] 바텀시트 외부영역의 어두워짐 효과 제거하기

Neoself 2025. 6. 4. 15:29

SwiftUI에서는 바텀시트 UI를 위해 .sheet() 뷰 수정자를 제공하고 있습니다. 개발자는 해당 수정자에 SwiftUI 뷰를 클로저 내부에 선언함으로써, 자연스러운 애니메이션 효과와 함께 원하는 뷰를 부모 뷰 상단에 표시할 수 있게 됩니다.

 

하지만, .sheet 뷰 수정자의 기본형태를 사용할 경우, 바텀시트 표시와 함께 바텀시트 외부 배경또한 어두워지게 됩니다.

.sheet(isPresented: $isDetailPresent) {
    ExampleBottomSheet()
        .presentationBackgroundInteraction(.enabled)
}

하지만, 부모 뷰에 대한 상호작용 가능여부를 조정하는 위 뷰 수정자를 .enabled로 설정하게 되면, 외부영역에 대한 상호작용이 가능해질 뿐만 아니라, 아래와 같이 바텀시트 외부영역에 대해 Dimming 처리되지 않게 됩니다.

 

 

감사합니다.


Reference 

https://www.appcoda.com/swiftui-bottom-sheet-background/

 

Customizing SwiftUI Bottom Sheet's Background and Scrolling Behaviour

Since the release of iOS 16, it’s easy to create an interactive bottom sheet using SwiftUI. All you need to do is to embed a modifier called presentationDetents in a Sheet view. Earlier, we published a detailed tutorial to walk you through the API. Howev

www.appcoda.com