Geo*_*ard 3 xcode ios swift swiftui xcode15
有一个新的#Preview宏(或者至少对我来说是新的)。SwiftLee 博客对此进行了讨论。我排除了下面示例的一些代码来问我的问题。
要在 SwiftUI 画布中预览代码,您过去必须编写代码:
struct ContentView: View {
var body: some View {
VStack {
Text("Hello World!")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud)
...但是现在(2023 年 10 月)您可以编写代码:
struct ContentView: View {
var body: some View {
VStack {
Text("Hello World!")
}
}
}
#Preview {
ContentView()
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:我们如何考虑 Apple 的#Preview宏语法重新编码以下内容,以便我们可以以编程方式更改在 SwiftUI-LivePreview-Canvas 上显示的设备:
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView().previewDevice(PreviewDevice(rawValue: "iPhone SE"))
}
}
Run Code Online (Sandbox Code Playgroud)
我看到的解决方法是画布上的下拉图形界面,可让您手动更改画布中显示的设备,但有没有办法以编程方式执行此操作。
先感谢您!主总是拯救!
我在Xcode 15 发行说明中发现了这一点:
预览画布有一个新的控件,用于选择用于预览的设备。默认情况下,它跟踪所选运行目标的设备系列,但可以选择特定设备。这应该有利于修饰符
previewDevice。
这是一个相当强烈的消息,告诉您不要使用previewDevice,并使用画布 GUI 上的控件来选择未来的预览设备。
我认为这是合理的。人们不应仅在他们指定的一台设备上预览。应用程序应该在各种设备上运行,并且您编写的代码不应该与特定的设备关联。
| 归档时间: |
|
| 查看次数: |
1075 次 |
| 最近记录: |