티스토리 뷰

iOS/SwiftUI

[SwiftUI] UIRepresentable

HarryJeonn 2022. 5. 2. 19:02

SwiftUI에서 UIView를 사용하기 위해 사용!

 

 

카메라를 사용해보자

struct CameraView: UIViewRepresentable {

}

UIViewRepresentable를 상속받는다

struct CameraView: UIViewRepresentable {
		class VideoPreviewView: UIView {
        override class var layerClass: AnyClass {
            AVCaptureVideoPreviewLayer.self
        }
        
        var videoPreviewLayer: AVCaptureVideoPreviewLayer {
            return layer as! AVCaptureVideoPreviewLayer
        }
    }

		let session = AVCaptureSession()

    func makeUIView(context: Context) -> VideoPreviewView {
        let view = VideoPreviewView()
        
        view.backgroundColor = .black
        view.videoPreviewLayer.videoGravity = .resizeAspectFill
        view.videoPreviewLayer.cornerRadius = 0
        view.videoPreviewLayer.session = session
        view.videoPreviewLayer.connection?.videoOrientation = .portrait

        return view
    }
    
		func updateUIView(_ uiView: VideoPreviewView, context: Context) {
		
    }
}

makeUIView(context:) -> UIViewupdateUIView(:context:)사용

makeUIView(context:) -> UIView

UIView를 생성하는 메소드

SwiftUI의 View 라이프 사이클동안 한번 호출

updateUIView(:context:)

View의 State가 바뀔때마다 트리거

SwiftUI View의 상태도 가져올 수 있음

 

 

 

제가 틀렸거나 다른 의견이 있으시다면 댓글로 남겨주시면 감사하겠습니다 :)

'iOS > SwiftUI' 카테고리의 다른 글

[SwiftUI] Custom navigation back button  (0) 2022.05.30
[SwiftUI] Coordinator  (0) 2022.05.02
[SwiftUI] Custom Alert  (0) 2022.04.28
[SwiftUI] 화면전환  (0) 2022.04.28
[SwiftUI] Stack  (0) 2022.04.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함