presentationBackgroundInteraction를 사용하면 sheet가 올라와도 뒷 배경과 상호작용이 가능해집니다
presentationBackgroundInteraction란?
왼쪽 그림은 사용 전, 오른쪽 그림은 사용 후 사진입니다.
사용 코드
사용 코드와 함께 간단하게 해석을 해보겠습니다.
presentationDetents 를 사용하여 사용자한테 보여줄 sheet의 영역을 보여줄 수 있습니다.
presentationBackgroundInteraction 를 사용하면 역시 sheet의 어느 지점부터 뒷배경과 상호작용을 허용할지 결정할 수 있습니다.
struct SwiftUIView: View {
@State private var pressed = false
var body: some View {
VStack {
Button {
} label: {
Text("Testing Butotn")
}
Spacer()
Button {
pressed.toggle()
} label: {
Text("Sheet Button")
}
}
.sheet(isPresented: $pressed, content: {
Text("Second View")
.presentationDetents([.medium])
.presentationBackgroundInteraction(.enabled(upThrough: .medium))
})
}
}
presentationBackgroundInteraction 분석
조금 더 알아보겠습니다. 사용자에게 허용할지 말지를 결정할 수 있게 다음과 같이 3가지 종류로 제공하고 있습니다.
automatic: 자동적으로 사용자가 뒷 배경과 상호작용 할 수 있게 해줍니다.
disabled: 사용자가 뒷 배경과 상호작용을 못하게 합니다.
enabled: 사용자가 뒷 배경과 상호작용 할 수 있게 합니다.
enabled(upThrogh:): 원하는 영역만큼 사용자가 뒷 배경과 상호작용 할 수 있게 합니다.
large: 화면의 최상단 위로 사용자가 뒷 배경과 상호작용이 가능해집니다.
medium: 화면의 중간위로 사용자가 뒷 배경과 상호작용이 가능해집니다.
custom: 커스텀 detent 위로 사용자가 뒷 배경과 상호작용이 가능해집니다.
fraction(CGFloat): 원하는 화면의 비율만큼 지정하고 해당 비율 위로부터 사용자가 상호작용 가능합니다. (0~1)
height(CGFloat): 원하는 높이만큼 지정하면 해당 높이 위로부터 사용자가 상호작용을 할 수 있습니다. (0~ )
'SwiftUI' 카테고리의 다른 글
SwiftUI - DragGesture 사용해서 화면 드래그하는법 (0) | 2024.08.07 |
---|---|
SwiftUI - 컨텐츠를 원하는 위치에 배치하기 (0) | 2024.08.06 |
DisclosureGroup 로 접는 뷰 만들기 (0) | 2024.07.13 |
Preview에서 SwiftData 사용하기(crashed due to an uncaught exception) (0) | 2024.06.28 |
swiftUI - 간단하게 검색창 만들기 (0) | 2024.06.15 |