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:) -> UIView와 updateUIView(:context:)사용
makeUIView(context:) -> UIView
UIView를 생성하는 메소드
SwiftUI의 View 라이프 사이클동안 한번 호출
updateUIView(:context:)
View의 State가 바뀔때마다 트리거
SwiftUI View의 상태도 가져올 수 있음
제가 틀렸거나 다른 의견이 있으시다면 댓글로 남겨주시면 감사하겠습니다 :)