[Swift] PreviewProvider의 .constant (Binding의 타입 메서드)

YoungToMaturity·2022년 3월 16일
2

iOS

목록 보기
12/16
post-thumbnail

PreviewProvider

SwiftUI에는 개발을 더욱 편리하게 해주는 여러 기능이 있습니다. 그 중 PreviewProvider는 현재 편집하는 View를 실시간으로 보여주어, 개발자로 하여금 정확하게 기능을 구현하고 있는지를 확인하기 쉽게 해줍니다.
또한, 아래 사진과 같이 동시에 각각 다른 특징(다크모드, 언어 등)을 가진 Preview를 제공합니다.

@Binding

그렇다면 다른 View의 @State와 연결된 @propertyWrapper@Binding의 경우는 PreviewProvider에서 어떻게 표현될까요? 막연히 상상했을 때에는 실제 View에서와 같이 @Binding var foo: Bool와 같이 선언하고 인자로서 넘겨주면 될 것이라고 생각했지만, struct View이름_Previews는 View가 아닌 PreviewProvider였기 때문에 변수가 생성되지 않았습니다.
따라서 "swiftUI binding preview"라고 구글링한 결과 Stack Overflow: SwiftUI @Binding Initialize라는 글에서 답을 찾을 수 있었습니다.

constant(_:)

위의 사진과 같이, PreviewProvider는 다양한 상황에서의 View를 미리 보여주는 것이기 때문에, 다른 View에서 값이 변화하는 것에 따라 Preview를 새로 그리는 데에는 무리가 있습니다.
그렇기 때문에 PreviewProvider에서는 constant(_:)라는 Binding의 타입 메서드를 통해서 각 Binding 변수의 특정 값을 고정 값으로 제공하여, 해당 값에 따른 Preview를 확인할 수 있습니다.
Apple constant(_:) 공식문서에서 확인할 수 있듯, constant는 원하는 값을 인자로 넘겨주기만 하면 해당 값을 Binding 타입으로 return합니다. 아래에 해당 메소드를 활용하여 PreviewProvider를 작성한 예시를 남기며 글 마치겠습니다.

profile
iOS Developer

1개의 댓글

comment-user-thumbnail
2022년 10월 12일

감사합니다~

답글 달기