사용방법
1.
UIViewRepresentable 을 준수하는 struct 만들기
2.
해당 뷰 에서 사용되는 프로퍼티 정의하기
3.
makeUIView() 메서드 추가하기
→ 필요한 UIKit 뷰를 만들어서 리턴하기
4.
updateUIView() 메서드 추가하기
→ updateUIView() 는 데이터가 변경될 때마다 호출됨.
// 1
struct TextView: UIViewRepresentable {
// 2 : 바인딩 데이터 선언 -> 해당 데이터 변경시마낟 updateUIView() 호출
@Binding var text: NSMutableAttributedString
// 3 : 만들고자하는 UIKit View 를 리턴하기
func makeUIView(context: Context) -> UITextView {
UITextView()
}
// 4 : 변경된 데이터를 연결해준다.
func updateUIView(_ uiView: UITextView, context: Context) {
uiView.attributedText = text
}
}
Swift
복사
5.
위에서 정의한 Struct 를 SwiftUI 에서 View 처럼 사용하기
struct ContentView: View {
@State var text = NSMutableAttributedString(string: "")
var body: some View {
TextView(text: $text)
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
}
}
Swift
복사