如何预览在 iOS 和 WatchOS 之间共享的 SwiftUI 视图?
How can I preview a SwiftUI View shared between iOS and WatchOS?
我有一个示例 SwiftUI 视图,我在 iOS 中使用 Apple Watch Extension,当我尝试在 WatchOS“设备”中预览它时出现此错误:
The run destination iPhone 12 mini is not valid for Running the scheme 'TestApp WatchKit App'
I have tried everything. Restarting Xcode like suggested here was one of the first things.
我最终让它“工作”的方法是使用固定预览。
这是我的示例视图,它位于“SharedViews”文件夹中,并且在 TestApp 和 TestApp WatchKit 扩展中具有目标成员资格:
struct CustomTextView: View {
let caption: String
let foreground: Color
var body: some View {
VStack {
Text(caption)
.padding()
Text("Colored\r" + caption)
.foregroundColor(foreground)
.padding()
}
}
}
//struct CustomTextView_Previews: PreviewProvider {
// static var previews: some View {
// CustomTextView(caption: "Shared Preview", foreground: .blue)
// }
//}
为了在 Watch 设备中预览此视图,我在 TestApp WatchKit 扩展中创建了一个“Helpers”文件夹,并在其中创建了一个“Container View”,它只是 TestApp WatchKit 扩展的成员:
struct CustomTextViewWatchPreview: View {
var body: some View {
CustomTextView(caption: "Watch Preview Container", foreground: .red)
}
}
struct CustomTextViewWatchPreview_Previews: PreviewProvider {
static var previews: some View {
CustomTextViewWatchPreview()
}
}
现在要预览我的 CustomTextView,我打开 ..Preview 文件并固定它的预览。然后我切换回 CustomTextView 文件,应用我的更改并在固定预览中查看它们。为了摆脱“无法预览...”错误,我像上面一样注释掉了 CustomTextView 自己的预览。
要在 iPhone 中预览,我更改了 运行 目标,取消注释自己的预览并取消固定 Watch Preview。
有没有人有更好的解决方案?也许我可以同时在 iPhone 和 Apple Watch 中预览我的视图?
我有一个示例 SwiftUI 视图,我在 iOS 中使用 Apple Watch Extension,当我尝试在 WatchOS“设备”中预览它时出现此错误:
The run destination iPhone 12 mini is not valid for Running the scheme 'TestApp WatchKit App' I have tried everything. Restarting Xcode like suggested here was one of the first things.
我最终让它“工作”的方法是使用固定预览。
这是我的示例视图,它位于“SharedViews”文件夹中,并且在 TestApp 和 TestApp WatchKit 扩展中具有目标成员资格:
struct CustomTextView: View {
let caption: String
let foreground: Color
var body: some View {
VStack {
Text(caption)
.padding()
Text("Colored\r" + caption)
.foregroundColor(foreground)
.padding()
}
}
}
//struct CustomTextView_Previews: PreviewProvider {
// static var previews: some View {
// CustomTextView(caption: "Shared Preview", foreground: .blue)
// }
//}
为了在 Watch 设备中预览此视图,我在 TestApp WatchKit 扩展中创建了一个“Helpers”文件夹,并在其中创建了一个“Container View”,它只是 TestApp WatchKit 扩展的成员:
struct CustomTextViewWatchPreview: View {
var body: some View {
CustomTextView(caption: "Watch Preview Container", foreground: .red)
}
}
struct CustomTextViewWatchPreview_Previews: PreviewProvider {
static var previews: some View {
CustomTextViewWatchPreview()
}
}
现在要预览我的 CustomTextView,我打开 ..Preview 文件并固定它的预览。然后我切换回 CustomTextView 文件,应用我的更改并在固定预览中查看它们。为了摆脱“无法预览...”错误,我像上面一样注释掉了 CustomTextView 自己的预览。
要在 iPhone 中预览,我更改了 运行 目标,取消注释自己的预览并取消固定 Watch Preview。
有没有人有更好的解决方案?也许我可以同时在 iPhone 和 Apple Watch 中预览我的视图?