UIKit에서 SwiftUI Preview를 사용해보기

Choooose·2022년 12월 18일
0

UIKit

목록 보기
1/1

처음 iOS 개발을 SwiftUI로 시작하면서 후에 UIKit을 공부할때 SwiftUI에만 있는 Preview의 부재에 굉장히 힘들었던 경험이 있다.

내가 그리는 뷰가 바로바로 보여지지 않아서 굉장히 불편했었는데 이를 해결한 방법을 공유하고자 한다.

바로 SwiftUI를 import 하여 Preview를 사용하는 방법이다.

Preview Extension 추가

PreviewExtension.swift 등으로 따로 extension 파일 만든 후에 그 안에 아래와 같은 코드를 추가한다.

import UIKit
import SwiftUI

#if DEBUG
//MARK: ViewController Preview
extension UIViewController {
    private struct Preview: UIViewControllerRepresentable {
            let viewController: UIViewController

            func makeUIViewController(context: Context) -> UIViewController {
                return viewController
            }

            func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
            }
        }

        func toPreview() -> some View {
            Preview(viewController: self)
        }
}
//MARK: View Preview
extension UIView {
    private struct Preview: UIViewRepresentable {
        let view: UIView
        
        func makeUIView(context: Context) -> some UIView {
            return view
        }
        
        func updateUIView(_ uiView: UIViewType, context: Context) {
            
        }
        
    }
    func toPreview() -> some View {
        Preview(view: self)
    }
}
#endif

사용방법

밑의 코드를 사용할 ViewController 코드 맨 밑에 넣어주면 된다.

#if DEBUG
import SwiftUI
struct ViewControllerPreview: PreviewProvider {
    static var previews: some View {
            ViewController().toPreview()
    }
}
#endif

사용결과

0개의 댓글