addSubview 를 SwiftUI 로 구현하기

버들비·2020년 11월 24일
0

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 {
    	
    }
}

0개의 댓글