微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UIKit实时预览,如swiftUI

如何解决UIKit实时预览,如swiftUI

哪些UIKit在xcode中具有实时预览?像swiftUI一样,在xcode上有实时预览。当您使用swiftUI编写代码时,可以在左侧的xcode中显示结果设计

解决方法

您可以通过导入SwiftUI尝试使用此代码。您可以创建新文件,也可以将其放在ViewController代码下方。

struct MainViewController_Previews: PreviewProvider {

static var previews: some View {
        return ContentView()
    }
    
    struct ContentView: UIViewControllerRepresentable {
        
        func makeUIViewController(context: Context) -> MainViewController {
            return MainViewController()
        }
        
        func updateUIViewController(_ uiViewController: MainViewController,context: Context) {
            //
        }
    }
}

如果要忽略SafeArea,只需添加ContentView()。edgesIgnoringSafeArea(.all),对于特定的设备类型,您可以使用.previewDevice(.init(stringLiteral:“ DEVICE_TYPE”))// iPhone 11 Pro

,

使您的 ViewControllers 与 Xcode 预览配合使用

1 - 通过符合 UIViewControllerRepesentable 协议使它们可表示。

struct YourVCRepresentable: UIViewControllerRepresentable {
    func updateUIViewController(_ uiViewController: UIViewController,context: Context) {
        // leave this empty
    }
    
    func makeUIViewController(context: Context) -> UIViewController {
        YourViewController() // this is to make your view controller representable
    }
}

2 - 创建符合 PreviewProvider 协议的预览提供程序结构并传递上面创建的 RepresentableViewController。

struct YourVCPreview: PreviewProvider {
    static var previews: some View {
       YourVCRepresentable()
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。