XCode 15 #Preview 多个设备上的宏

XCode 15 #Preview Macro on multiple devices

提问人:JAHelia 提问时间:9/27/2023 更新时间:9/27/2023 访问量:351

问:

我找不到使用新的宏在多个设备上预览我的视图的方法。 它正在使用并在画布上并排显示预览,每个预览都具有正确的目标设备,但事实并非如此,这是我的代码:SwiftUIXCode 15#PreviewXCode 14XCode 15

struct ContentView: View {
    var body: some View {
        Text("Hello, world!")
    }
}

#Preview {
    ContentView()
        .previewOnDevices()
}

//#Preview {
//    ContentView()
//        .previewOnDevices()
//}

extension View {
    func previewOnDevices() -> some View {
        ForEach(DeviceName.all, id: \.self) { devicesName in
                previewDevice(PreviewDevice(rawValue: devicesName))
                .previewDisplayName(devicesName)
        }
    }
}

enum DeviceName: String, CaseIterable {
    //xcrun simctl list devicetypes
    case iPhoneSE = "iPhone SE (3rd generation)"
    case iPhone13Mini = "iPhone 13 mini"

    static var all: [String] {
        return DeviceName.allCases.map { $0.rawValue }
    }
}

结果是重复相同的视图:

enter image description here

我知道我可以从画布中的设备列表中选择我想要的任何设备,但这一次显示一个设备,这意味着我每次需要时都需要选择所需的设备,这很令人头疼,即使我有多个 #Previews,在预览中为画布中的所选设备坚持。XCode#Preview

对此有任何想法将不胜感激。

swift xcode swiftui xcode15 swift-宏

评论

0赞 KAMIKAZE 12/24/2023
我也在与此作斗争..没有运气。你找到解决方案了吗?

答: 暂无答案