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~ )

 

 

ytw_developer