【发布时间】:2021-07-19 03:58:51
【问题描述】:
什么 UIKit 在 xcode 中有实时预览?像 swiftUI 一样在 xcode 上有一个实时的 priview。使用 swiftUI 编写代码时,可以在左侧 xcode 中显示结果设计
【问题讨论】:
什么 UIKit 在 xcode 中有实时预览?像 swiftUI 一样在 xcode 上有一个实时的 priview。使用 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) {
//
}
}
}
如果您想 IgnoringSafeArea,只需添加 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()
}
}
【讨论】: