我的应用程序由两个视图组成。当我在模拟器上运行它时,它看起来像下面这样(减去红色条-我将其添加到图像中以使解释更容易):
红线上方的所有控件都在一个视图中,红线下方的一个控件(绿色的OtherOne)在另一个视图中。
当我运行应用程序时,它看起来就像你在那张图片中看到的那样。
但是,当我预览时,我会在XCode中看到两个不同的View页面。
它看起来像这样:
我必须单击顶部的每个(ContentView)气泡,这样我就可以分别看到每个气泡。
问题
我想知道为什么预览不显示它们合并-同样的方式,我看到他们在实际的应用程序?
我的Swift app看起来像:
import SwiftUI
@main
struct FirstSwiftUIApp: App {
var body: some Scene {
WindowGroup {
ContentView()
OtherView()
}
}
}
我的ContentView
文件中有两个单独的视图(ContentView
和OtherView
),看起来如下所示:
import SwiftUI
// preview moved to the top so you can see it contains both Views
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
OtherView()
}
}
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)
Text("Hello, world!")
Button(action:
{print("it worked")}){Text("simple")}
Button(action:{
if let url = URL(string:"https://newlibre.com/librestore"){
UIApplication.shared.open(url)
}
}){
Text("Load NewLibre")
}.padding(5)
}
.padding()
}
}
struct OtherView: View{
var body : some View{
VStack{
Button(action:
{print("This is the other one!")})
{
Text("OtherOne")
.font(.title2)
.foregroundColor(.green)
}
}.padding()
}
}
1条答案
按热度按时间cdmah0mi1#
您有两个预览,因为您当前在
previews
的根目录中有两个项目:为了让它们显示在 one 预览中,您应该有一个根目录(例如,在
VStack
中):