addSubview() 안에 들어갈 view 를 UIRepresentable 로 변환한다.
SwiftUI 뷰로 바뀐 UIKit 요소를 ZStack 을 이용해 addSubview 처럼 사용하면 된다.
ex) PDFKit 에서 thumbnailView 사용하기
struct PDFThumbnail: UIViewRepresentable {
var pdfView: PDFView
func makeUIView(context: Context) -> PDFThumbnailView {
let thumbnailView = PDFThumbnailView()
thumbnailView.backgroundColor = UIColor.clear // 여기서 배경색을 투명하게 하지 않으면, ZStack 으로 상단에 배치했을때 아래에 깔린 뷰를 가려버린다.
thumbnailView.layoutMode = .vertical
thumbnailView.pdfView = pdfView
return thumbnailView
}
func updateUIView(_ uiView: PDFThumbnailView, context: Context) { }
}
struct PDFbody: UIViewRepresentable {
var pdfView: PDFView
var pdfDocument: PDFDocument
func makeUIView(context: Context) -> PDFView {
pdfView.document = pdfDocument
return pdfView
}
func updateUIView(_ uiView: PDFThumbnailView, context: Context) { }
}
struct PDFViewer : View {
var pdfView : PDFView
var pdfDocument : PDFDocument
var body : some view {
}
}